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

时间:2017-03-05 15:36:57

标签: three.js fbx

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

1 个答案:

答案 0 :(得分:4)

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

// 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