ThreeJS – 动态更换fbx模型的某个子Mesh现有的纹理贴图为指定的纹理贴图
1 动态更换fbx模型的指定纹理贴图
在使用ThreeJS中的FBXLoader的过程中,我们在有的时候只需要Fbx模型的网格信息,而每个网格的纹理我们想自己动态的指定,这在OpenGL中很简单,在ThreeJS同样也是非常简单。
动态更换子mesh中纹理贴图可参考以下代码:
var fbxModelfilepath = './example.fbx';
var fbxLoader = new THREE.FBXLoader();
fbxLoader.load(fbxModelfilepath,function(fbxObject){
fbxObject.traverse(function(child){
if(child instanceof THREE.Mesh)
{
if(child.name.indexOf("Body") != -1)
{
// 如果贴图格式为tga则使用THREE.TGALoader
// var loader = new THREE.TGALoader();
// 如果贴图格式为其他普通格式,则使用Three.TextureLoader
var loader = new Three.TextureLoader();
loader.load(
'./Resource/body.png', // 本地路径的图片
// 加载完贴图后的回调函数
function (texture) {
child.material.map = texture;
child.material.needsUpdate = true;
console.log("身体贴图更新完毕");
},
// 目前不支持加载贴图过程中的回调函数
undefined,
// 加载出错时候的回调函数
function (err) {
console.error('An error happened.');
}
);
}
}
});
scene.add(fbxObject);
});
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:ThreeJS – 动态更换fbx模型的某个子Mesh现有的纹理贴图为指定的纹理贴图
原文链接:https://www.stubbornhuang.com/1125/
发布于:2021年01月28日 15:44:40
修改于:2023年06月26日 21:58:11
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
50