From 1c367ba22bb5ba35b3a2de45f23af675d50eeff4 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期二, 23 四月 2024 17:19:36 +0800 Subject: [PATCH] # --- /dev/null | 0 src/pages/base.jsx | 1 - src/components/shelf.jsx | 41 +++++------------------------------------ 3 files changed, 5 insertions(+), 37 deletions(-) diff --git a/public/models/shelf/Horse.glb b/public/models/shelf/Horse.glb deleted file mode 100644 index 66fb302..0000000 --- a/public/models/shelf/Horse.glb +++ /dev/null Binary files differ diff --git a/public/models/shelf/row.fbx b/public/models/shelf/row.fbx deleted file mode 100644 index 3b331a6..0000000 --- a/public/models/shelf/row.fbx +++ /dev/null Binary files differ diff --git a/src/components/shelf.jsx b/src/components/shelf.jsx index 1edf4b9..b71e193 100644 --- a/src/components/shelf.jsx +++ b/src/components/shelf.jsx @@ -1,58 +1,27 @@ -import { useMemo } from 'react'; +import { useMemo, useState, useEffect } from 'react'; import { useGLTF } from '@react-three/drei'; import * as THREE from 'three'; import { MODEL_SHELF_SCALE } from '@/config/setting' import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; -const generateScene = async () => { - const loader = new GLTFLoader(); - const dracoLoader = new DRACOLoader(); - dracoLoader.setDecoderPath('/draco/'); - loader.setDRACOLoader(dracoLoader); - - return await new Promise((resolve, reject) => { - loader.load('/models/shelf/row.glb', function (mesh) { - console.log(mesh); - resolve(mesh.scene) - }) - }) -} const Shelf = (props) => { const { position = [0, 300, 0], rotationY = 0 } = props; - const dracoLoader = new DRACOLoader(); - dracoLoader.setDecoderPath('draco/'); - useGLTF.setDecoderPath('/draco/'); - // const { scene } = useGLTF('/models/shelf/row.glb', '/draco/'); const { nodes, materials } = useGLTF('/models/shelf/row.glb'); - console.log(nodes); - - - const { nodes: nodes1, materials1, animations } = useGLTF('/models/shelf/Horse.glb'); return ( <> <group rotation-y={rotationY} position={position}> - <primitive object={generateScene()} /> - <mesh + <primitive castShadow receiveShadow - geometry={nodes.鐗╀欢_1001.geometry} + object={nodes.鐗╀欢_1001} material={materials['鏉愯川_1.002']} - position={[0, 2, 0.3]} - rotation={[Math.PI / 2, 0, Math.PI / 2]} - scale={70} - /> - <mesh - castShadow - receiveShadow - geometry={nodes1.mesh_0.geometry} - material={nodes1.mesh_0.material} - morphTargetDictionary={nodes1.mesh_0.morphTargetDictionary} - morphTargetInfluences={nodes1.mesh_0.morphTargetInfluences} + position={[0, 0, 0]} + scale={10000} /> </group> </> diff --git a/src/pages/base.jsx b/src/pages/base.jsx index c8595f2..ce6ec8c 100644 --- a/src/pages/base.jsx +++ b/src/pages/base.jsx @@ -26,7 +26,6 @@ <TreeGroup /> <House /> <Warehouse /> - <Demo position={[0, 0, 0]} /> <OrbitControls /> <Environment background preset="night" /> <Help /> -- Gitblit v1.9.1