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现有的纹理贴图为指定的纹理贴图-StubbornHuang Blog纵使晴明无雨色,入云深处亦沾衣。