【问题标题】:(react-three-fiber) I want to import a 3D model and then load an image on it(react-three-fiber) 我想导入一个 3D 模型,然后在上面加载一个图像
【发布时间】:2021-03-11 13:15:11
【问题描述】:

我该怎么做?图片加载杯子,然后让用户选择要在杯子上显示的图片。

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

【问题讨论】:

    标签: three.js react-three-fiber


    【解决方案1】:

    尝试将纹理图像从 src 或 public 文件夹导入组件。然后使用新的 THREE.TextureLoader() 与您的网格一起使用。

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

    否则,

    如果它是 .gltf 或 .glb 模型,我推荐使用 GLTFJSX npx 命令。只需将您的 3d 模型添加到公共文件夹,cd 进入公共文件夹,安装 @react-three/drei 然后运行 ​​[npx @react-three/gltfjsx "modelname.gltf or .glb" NamedMe.js]。这是将模型导入 WEBGL 的最佳方式,因为 .gltf 文件类型已经过高度优化。当您使用此命令时,它会自动为您的 3d 模型导入网格、材质、分组、参考和属性。使用此website 将您的 obj 或 fbx 转换为 .gltf/glb。但是这个网站不会像许多 3d 软件那样在文件中“烘焙、附加、集成”你的纹理贴图。

    如果是 OBJ,那么使用这个人的示例:example from code sandbox,它向您展示了如何使用来自三个/示例的 OBJ 加载器来导入您的 OBJ。

    【讨论】:

      猜你喜欢
      • 2021-06-12
      • 2021-08-27
      • 2022-01-25
      • 1970-01-01
      • 2021-07-02
      • 2020-10-31
      • 2021-05-22
      • 2021-07-13
      • 2021-12-08
      相关资源
      最近更新 更多