From 1c0347c32b3f20c9eb4b482b1535ff8a1e9518c3 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期二, 23 四月 2024 11:18:48 +0800 Subject: [PATCH] # --- src/pages/base.jsx | 57 +++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 35 insertions(+), 22 deletions(-) diff --git a/src/pages/base.jsx b/src/pages/base.jsx index fc7f556..d98cc5f 100644 --- a/src/pages/base.jsx +++ b/src/pages/base.jsx @@ -1,17 +1,46 @@ import { useRef, useState } from 'react' import { Canvas, useFrame } from '@react-three/fiber' import { OrbitControls } from '@react-three/drei' -import { Environment } from '@react-three/drei' +import { Environment, Sky } from '@react-three/drei' +import Help from '../components/help' +import Lights from '../components/light' +import Camera from '../components/camera' +import Buildings from '../components/buidings' +import TreeGroup from '../components/tree-group' +import House from '../components/house' +import Warehouse from '../core/warehouse' + +const Base = (props) => { + return ( + <div style={{ height: '100%', width: '100%' }}> + <Canvas + shadows + gl={{ + logarithmicDepthBuffer: true, + }} + > + <Lights /> + <Camera /> + <Sky distance={450000} sunPosition={[0, 1, 0]} inclination={0} azimuth={0.25} /> + <Buildings /> + <TreeGroup /> + <House /> + <Warehouse /> + <Box position={[0, 0, 0]} /> + <OrbitControls /> + <Environment background preset="night" /> + <Help /> + </Canvas> + </div> + + ) +} const Box = (props) => { - const ref = useRef() - const [hovered, hover] = useState(false) const [clicked, click] = useState(false) - useFrame((state, delta) => (ref.current.rotation.x += delta)) - return ( <mesh {...props} @@ -20,25 +49,9 @@ onClick={(event) => click(!clicked)} onPointerOver={(event) => (event.stopPropagation(), hover(true))} onPointerOut={(event) => hover(false)}> - <boxGeometry args={[1, 1, 1]} /> + <boxGeometry args={[10, 10, 10]} /> <meshStandardMaterial color={hovered ? 'hotpink' : 'orange'} /> </mesh> - ) -} - -const Base = () => { - return ( - <div style={{ height: '500px', width: '500px' }}> - <Canvas> - <ambientLight intensity={Math.PI / 2} /> - <spotLight position={[10, 10, 10]} angle={0.15} penumbra={1} decay={0} intensity={Math.PI} /> - <pointLight position={[-10, -10, -10]} decay={0} intensity={Math.PI} /> - <Box position={[0, 0, 0]} /> - <OrbitControls /> - <Environment preset="city" /> - </Canvas> - </div> - ) } -- Gitblit v1.9.1