如何渲染同一 3D 模型的多个 3D;
How To Render Multiple 3D of Same 3D Model;
我有一个来自 Mixamo 的 3D 模型,并使用 npx gltfjsx 将其制作成一个组件。现在我想多次渲染这个模型,但是当我尝试这样做时,我只在 Canvas.
上得到一个模型
有办法吗?这是我的文件:
const { actions } = useAnimations(animations, heroRef);
return (
<>
<group ref={heroRef} dispose={null}>
<group rotation={[Math.PI / 2, 0, 0]} scale={0.01}>
<primitive object={nodes.mixamorig1Hips} />
<skinnedMesh
geometry={nodes.Ch36.geometry}
material={materials.Ch36_Body}
skeleton={nodes.Ch36.skeleton}
/>
</group>
{/* <gridHelper args={[25, 25]}/> */}
</group>
</>
);
}
useGLTF.preload("/Mannequin.glb"); ```
Any help/advice is appreciated.
模型需要克隆,像这样:
const scene = React.useMemo(() => {
return model.scene.clone();
}, [model]);
上面克隆了 scene
,但是你可以在 useGLTF
[=16= 返回的对象内部对 nodes
、materials
等做同样的事情]
这是一个例子:
https://codesandbox.io/s/heuristic-clarke-g58yp?file=/src/App.js
我有一个来自 Mixamo 的 3D 模型,并使用 npx gltfjsx 将其制作成一个组件。现在我想多次渲染这个模型,但是当我尝试这样做时,我只在 Canvas.
上得到一个模型有办法吗?这是我的文件:
const { actions } = useAnimations(animations, heroRef);
return (
<>
<group ref={heroRef} dispose={null}>
<group rotation={[Math.PI / 2, 0, 0]} scale={0.01}>
<primitive object={nodes.mixamorig1Hips} />
<skinnedMesh
geometry={nodes.Ch36.geometry}
material={materials.Ch36_Body}
skeleton={nodes.Ch36.skeleton}
/>
</group>
{/* <gridHelper args={[25, 25]}/> */}
</group>
</>
);
}
useGLTF.preload("/Mannequin.glb"); ```
Any help/advice is appreciated.
模型需要克隆,像这样:
const scene = React.useMemo(() => {
return model.scene.clone();
}, [model]);
上面克隆了 scene
,但是你可以在 useGLTF
[=16= 返回的对象内部对 nodes
、materials
等做同样的事情]
这是一个例子:
https://codesandbox.io/s/heuristic-clarke-g58yp?file=/src/App.js