From 56961f2dd2bc4813520f8ea6285536b439d41576 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期二, 30 四月 2024 12:09:10 +0800 Subject: [PATCH] # --- src/components/shelf.jsx | 19 +++++++++++++++---- 1 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/components/shelf.jsx b/src/components/shelf.jsx index 065358c..30404d2 100644 --- a/src/components/shelf.jsx +++ b/src/components/shelf.jsx @@ -2,7 +2,6 @@ import { useGLTF, useFBX } from '@react-three/drei'; import * as THREE from 'three'; import { MODEL_SHELF_SCALE } from '@/config/setting' -import { snapshot } from 'valtio'; import { useStore } from '@/store'; import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; @@ -17,8 +16,18 @@ return useGLTF('/models/shelf/row.glb'); }, []) + const model = useMemo(() => { + const fbx = useFBX('/models/shelf/row.fbx'); + if (!fbx.castShadow) { + Common.setShadow(fbx); + } + // Common.setColor(fbx) + fbx.scale.set(MODEL_SHELF_SCALE * 1.5, MODEL_SHELF_SCALE, MODEL_SHELF_SCALE); + return fbx.clone(); + }, []) + useEffect(() => { - snapshot(state).models[no] = position; + state.shelfList[no] = position; }, [props]); return ( @@ -32,10 +41,12 @@ position={[0, 99, 0]} scale={50000} /> */} - <mesh position={[0, 100, 0]}> + + <primitive object={model} castShadow position={[0, 0, 0]} /> + {/* <mesh position={[0, 100, 0]}> <boxGeometry args={[150, 200, 30]} /> <meshStandardMaterial color={'orange'} transparent={true} opacity={.5} /> - </mesh> + </mesh> */} {/* <Box rotationY={0} position={[0, 0, 0]} /> */} </group> </> -- Gitblit v1.9.1