From e6de6ddae28dec5bf092b66d77ee8d522d39ff04 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 26 四月 2024 14:04:43 +0800 Subject: [PATCH] # --- src/components/shelf.jsx | 58 +++++++++++++++++----------------------------------------- 1 files changed, 17 insertions(+), 41 deletions(-) diff --git a/src/components/shelf.jsx b/src/components/shelf.jsx index 1edf4b9..90d7e8f 100644 --- a/src/components/shelf.jsx +++ b/src/components/shelf.jsx @@ -1,59 +1,35 @@ -import { useMemo } from 'react'; -import { useGLTF } from '@react-three/drei'; +import { useMemo, useState, useEffect } from 'react'; +import { useGLTF, useFBX } 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) - }) - }) -} +import Box from './box'; +import * as Common from '../utils/common'; 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'); + const { nodes, materials } = useMemo(() => { + return useGLTF('/models/shelf/row.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, 99, 0]} + scale={50000} + /> */} + <mesh position={[0, 100, 0]}> + <boxGeometry args={[150, 200, 30]} /> + <meshStandardMaterial color={'orange'} transparent={true} opacity={.5} /> + </mesh> + {/* <Box rotationY={0} position={[0, 0, 0]} /> */} </group> </> ) -- Gitblit v1.9.1