three.js - 如何在 Three.js 中为 .fbx 模型应用纹理?

标签 three.js fbx

如何在运行时更改三个 js 库中“.fbx”模型的纹理?

最佳答案

将纹理应用于 .FBX 模型的主要问题是 .FBX 作为一组子模型加载,每个子模型都有自己的 Material 。替换这些纹理的方法是遍历模型结构:

// FBX loader returns a group containing a multiple sub-objects. Traverse and apply texture to all. 
group.traverse(function (child) {
    if (child instanceof THREE.Mesh) {

        // apply texture
        child.material.map = texture
        child.material.needsUpdate = true;
    }
});

对于工作示例,我修改了默认的 Three.js FBX 示例来演示这一点:

http://www.eponalabs.com/experiments/FBXReplaceTexture/fbx_replace_texture.html

当您按下按钮时,上面的代码片段用于将纹理替换为 Unsplash.it 中的占位符图像。 。

Running man with texture replaced

关于three.js - 如何在 Three.js 中为 .fbx 模型应用纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42610294/

相关文章:

three.js - 如何在Three.js中构造空心圆柱体

javascript - three.js 的机械臂 Action

android - 如何在 Android 中渲染 OBJ 或 FBX?

opengl - 在 OpenGL 中转换 FBX 模型的坐标系

ios - 在 iOS native 应用程序中使用 FBX 文件和 3D 模型

unity-game-engine - Unity - 自定义导出和导入 FBX 数据

javascript - 在运行时更改使用 Three.js 创建的 3D 立方体的宽度/高度/长度

javascript - 如何限制 react 三纤维MapControls中的平移距离

three.js - 有没有人有 BSP 的例子?

shared-libraries - 如何在 Linux 上设置 LibGDX 的 fbx-conv