three.js中的FBX加载器

时间:2018-10-27 06:37:15

标签: three.js

我正在尝试使用three.js将模型加载到Web中,并且模型位于fbx文件中。

我尝试使用此代码,并且成功加载了模型,但无法像衣服一样在图像中碰到凹凸。

var loader = new THREE.FBXLoader();
            loader.load( 'models/kitty/HelloKityy_HP.FBX', function ( object ) {


                object.traverse( function ( child ) {
                    if ( child.isMesh ) {
                        child.castShadow = true;
                        child.receiveShadow = false;
                        child.flatshading = true;
                    }
                } );

                scene.add( object );
            } );

这是没有凸起的布料图像:

enter image description here

这是网络中模型的整体图片:

enter image description here

而且我不知道我是否做错了,我在js中为加载的对象添加了普通纹理:

var loader = new THREE.FBXLoader();
            loader.load( 'models/kitty/HelloKityy_HP.FBX', function ( object ) {


                object.traverse( function ( child ) {
                    if ( child.isMesh ) {
                        child.material.normalMap = THREE.ImageUtils.loadTexture('/models/kitty/normal.jpg');
                        child.castShadow = true;
                        child.receiveShadow = false;
                        child.flatshading = true;
                    }
                } );

                scene.add( object );
            } );

我在衣服上遇到了麻烦:

enter image description here

这里出现的实际问题是图像上出现不需要的黑白图像

enter image description here

请你帮我一下。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

我是初学者, 我假设,您需要小猫的衣服光滑,并且当使用归一化进行操作时,整个fbx 3d对象都会生效。 为了使“独自打扮”有效。

  1. 您可以分别加载身体和衣服(作为单独的文件),并仅以其中一个添加效果

loader.load('kitty.obj',obj=>{scene.add(obj)});

loader.load('kittyDress.fbx',obj=>{ //can make normalisation or effect to cloth here. scene.add(obj); });

  1. 我认为有一种方法或方法可以基于颜色过滤对部分进行归一化。