2

我从一个站点下载了一组文件,并在 blender 中导出了 glb、gltf 和 mtl 文件。我可以让 glb 或 gltf 文件显示在 react-three-fiber 场景中,但我不确定如何让纹理正确显示。我遇到了几个演示,但它们看起来很旧而且什么都行不通。

这是我加载文件的方式。

import desk from '../../assets/desk.gltf'; // or .glb file

const [gltf, set] = useState();
useMemo(() => new GLTFLoader().load(desk, set), []);
return gltf ? <primitive object={gltf.scene} scale={[0.05, 0.05, 0.05]} position={[0,0,1]} 
rotation={[Math.PI/2,Math.PI,0]}/> : null
4

1 回答 1

2

恐怕你混淆了两个主题。MTL文件与OBJ格式有关。这意味着资产几何图形的视觉方面存储在一个或多个外部MTL文件中。

glTF没有单独的文件。材料定义直接在glTFJSON 清单中定义。因此加载实际的 glTF 资产足以加载材质定义。

于 2021-01-11T11:22:35.750 回答