Three.js (react three fiber)我想导入一个3D模型,然后在上面加载一个图像

Three.js (react three fiber)我想导入一个3D模型,然后在上面加载一个图像,three.js,react-three-fiber,Three.js,React Three Fiber,我该怎么做?图像加载一个杯子,然后让用户选择一个图像显示在上面 类似于本文https://www.smashingmagazine.com/2020/11/threejs-react-three-fiber/但让我指定图像尝试从src或公用文件夹将纹理图像导入组件。然后将新的THREE.TextureLoader()用于网格 由于希望用户能够添加图像,请使用输入类型。将用户的图像保存到状态,并使用新的THREE.TextureLoader()和网格以相同的方式应用它。如果图像是您的,则导入所有图

我该怎么做?图像加载一个杯子,然后让用户选择一个图像显示在上面


类似于本文
https://www.smashingmagazine.com/2020/11/threejs-react-three-fiber/
但让我指定图像

尝试从src或公用文件夹将纹理图像导入组件。然后将新的THREE.TextureLoader()用于网格

由于希望用户能够添加图像,请使用输入类型。将用户的图像保存到状态,并使用新的THREE.TextureLoader()和网格以相同的方式应用它。如果图像是您的,则导入所有图像,将它们全部存储在状态中,并为网格创建onClick,将网格上的纹理文件更改为处于状态的图像

否则,

如果是.gltf或.glb模型,我建议使用npx命令。只需将3d模型添加到公用文件夹,将cd放入公用文件夹,安装@react three/drei,然后运行[npx@react three/gltfjsx“modelname.gltf或.glb”NamedMe.js]。这是将模型导入WEBGL的最佳方式,因为.gltf文件类型经过了大量优化。使用此命令时,它会自动导入三维模型的网格、材质、编组、参照和特性。使用此选项将obj或fbx转换为.gltf/glb。但是这个网站不会像很多3d软件那样在文件中“烘焙、附加、集成”你的纹理贴图


如果是OBJ,那么使用这家伙的示例:从代码沙盒,它向您展示了如何使用三个/示例中的OBJ加载程序来导入OBJ。

尝试从src或公用文件夹将纹理图像导入组件。然后将新的THREE.TextureLoader()用于网格

由于希望用户能够添加图像,请使用输入类型。将用户的图像保存到状态,并使用新的THREE.TextureLoader()和网格以相同的方式应用它。如果图像是您的,则导入所有图像,将它们全部存储在状态中,并为网格创建onClick,将网格上的纹理文件更改为处于状态的图像

否则,

如果是.gltf或.glb模型,我建议使用npx命令。只需将3d模型添加到公用文件夹,将cd放入公用文件夹,安装@react three/drei,然后运行[npx@react three/gltfjsx“modelname.gltf或.glb”NamedMe.js]。这是将模型导入WEBGL的最佳方式,因为.gltf文件类型经过了大量优化。使用此命令时,它会自动导入三维模型的网格、材质、编组、参照和特性。使用此选项将obj或fbx转换为.gltf/glb。但是这个网站不会像很多3d软件那样在文件中“烘焙、附加、集成”你的纹理贴图

如果它是一个OBJ,那么使用这个家伙的例子:从代码沙盒,它向您展示了如何使用三个/示例中的OBJ加载程序来导入您的OBJ