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

Posted

技术标签:

【中文标题】如何在three.js中为.fbx模型应用纹理?【英文标题】:How to apply texture for .fbx model in three.js? 【发布时间】:2017-07-25 10:01:47 【问题描述】:

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

【问题讨论】:

【参考方案1】:

将纹理应用于 .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 的占位符图像。

【讨论】:

mesh 是一个群吗?也许您应该将其称为 group 以避免混淆。

以上是关于如何在three.js中为.fbx模型应用纹理?的主要内容,如果未能解决你的问题,请参考以下文章

three.js 中的分层纹理

Three.js:FBX 骨骼正确旋转,而 GLTF 骨骼奇怪地旋转

如何对从搅拌机导出的动画 js 模型进行纹理处理? [三.js]

【Three.js】请问如何显示带纹理的三维模型?

如何用three.js编写正确的重复纹理

Three.js FBX 二进制格式不支持