three.js:使用OBJMTL加载器时如何应用alpha-map?

时间:2014-02-12 11:27:37

标签: three.js textures

实际上我正在尝试通过OBJMTLloader上传这些.obj和.mtl文件。一切正常,但是没有上传map_d加载的mtl文件中的图像。

newmtl睫毛

Ns 10.0000
Ni 1.5000
d 0.5000
Tr 0.0000
Tf 1.0000 1.0000 1.0000 
illum 2
Ka 0.5880 0.5880 0.5880
Kd 0.5880 0.5880 0.5880
Ks 0.0000 0.0000 0.0000
Ke 0.0000 0.0000 0.0000

map_Ka EyelashesDiffuseTexture.jpg
map_Kd EyelashesDiffuseTexture.jpg
map_d EyeLashes_Opacity_Texture.jpg

我的代码是

 var loader = new THREE.OBJMTLLoader();
   loader.load( 'upload/model.obj', 'upload/model.mtl', function ( object ) {
                                        object.position.y = -35;
                                        scene.add( object );
                                } ); 
window.addEventListener( 'resize', onWindowResize, false );
            }
function onWindowResize() {
                camera.aspect = window.innerWidth / window.innerHeight;
                camera.updateProjectionMatrix();
                renderer.setSize( window.innerWidth, window.innerHeight );
            }

我需要在代码中更改内容。 我试着这样做,并检查了很多答案,但没有得到有用的答案。

2 个答案:

答案 0 :(得分:1)

现在three.js支持alpha地图。但是你需要改变MTLLoaded.js。添加到createMaterial_

case 'map_d':
    // Alpha texture map
    params[ 'alphaMap' ] = this.loadTexture( this.baseUrl + value );
    params[ 'transparent' ] = true;

    break;

three.js r.74

答案 1 :(得分:0)

three.js不支持任何材料中的alpha-maps。

解决方法是将alpha-map烘焙到漫反射贴图的alpha通道中。

three.js r.66