Three.js 将Alpha通道指定给OBJ/MTL模型网格

Three.js 将Alpha通道指定给OBJ/MTL模型网格,three.js,Three.js,我正在加载three.js中的一个模型,该模型具有一些网格,其中纹理具有alpha通道。但是,没有将alpha应用于网格的这些部分 这一切都在3.js R67中 这是我的渲染设置 renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true }); 这是模型加载代码 loader.load( 'chris/Chris_RE6.obj', 'chris/Chris_RE6.mtl', function ( ob

我正在加载three.js中的一个模型,该模型具有一些网格,其中纹理具有alpha通道。但是,没有将alpha应用于网格的这些部分

这一切都在3.js R67中

这是我的渲染设置

renderer = new THREE.WebGLRenderer({
    antialias: true,
    alpha: true
});
这是模型加载代码

loader.load( 'chris/Chris_RE6.obj', 'chris/Chris_RE6.mtl', function ( object ) {
    mesh = object;
    mesh.traverse( function ( child ) {

        if ( child instanceof THREE.Mesh ) {

            // child.material.map = texture;
            child.castShadow = true;

        }

    } );
    mesh.castShadow = true;
    mesh.receiveShadow = true;
    scene.add( mesh );

    animate(new Date().getTime());


    var myElement = document.querySelector(".loading");
    myElement.style.display = "none";

} );
我在想,也许我需要遍历模型并手动分配Alpha?但这听起来很费劲!想象一下,如果我有多个透明的高多边形模型?我如何推断网格上需要透明的网格在哪里?但我甚至不确定这种思路是否正确


我想我把它修好了。虽然我不知道,但解决方案是100%。也许我走错了方向

我知道头发必须在加载的网格中的某个地方,并且必须以某种方式键入。当我记录它时,我发现了它,网格被命名为

名称:“集团负责人”151

我认为,如果头发被应用,它可能需要一个带有网格材质的网格。因此,在我遍历模型的过程中,我将透明度应用于所有具有该材质的部分。这修复了模型的显示。但我不认为它100%有效

无论如何,这是现在更新的代码

var loader = new THREE.OBJMTLLoader();
loader.load( 'chris/Chris_RE6.obj', 'chris/Chris_RE6.mtl', function ( object ) {
    mesh = object;
    mesh.traverse( function ( child ) {

           if ( child.material instanceof THREE.MeshPhongMaterial ) {

            child.material.transparent = true;

        }

        if ( child instanceof THREE.Mesh ) {

            child.castShadow = true;
            child.receiveShadow = true;

        }

    } );
    mesh.castShadow = true;
    mesh.receiveShadow = true;
    scene.add( mesh );

    animate(new Date().getTime());


    var myElement = document.querySelector(".loading");
    myElement.style.display = "none";

} );

您是否为那些具有透明纹理的材质设置了
material.transparent=true
?我甚至不知道在循环中如何设置。你能给我举个例子吗?现在am console正在记录这些材料,并将尝试在此基础上拆分它们…作为黑客,请尝试编辑.mtl文件,并为所需材料设置d=0.9999。