代码之家  ›  专栏  ›  技术社区  ›  Benlov

三js画布渲染器,带有Blender JSON文件的Objectloader,对象重叠的透明度?

  •  0
  • Benlov  · 技术社区  · 7 年前

    weird overlap render

    不管我用的是哪种搅拌器;我选择并导出了其他Blender文件,无论设置如何,它们都会产生这种效果。

    enter image description here

    下面是我用来放置对象和材质的代码。

    var loader = new THREE.ObjectLoader();
                loader.load("../js/lights.json", function(object) {
    
                       var material = new THREE.MeshToonMaterial( { color: 0x3f3f3f, alphaTest: 0.5 } );
                       object.traverse( function ( child ) {
                        if ( child instanceof THREE.Mesh ) {
                            child.material = material;
                            child.drawMode = THREE.TrianglesDrawMode;
                        };  
                       });
                       object.scale.set(3, 3, 3);
                       object.position.x = 1;
                       object.position.y = 1;
                       object.position.z = 1;
                       object.rotation.set( 25, 25, 25 );
                       scene.add( object );
                    }   
                );
    

    var loader = new THREE.ObjectLoader();
                loader.load("../js/lights.json", function(object) {
    
                       var material = new THREE.MeshBasicMaterial( { color: 0x333333 } );
                       object.traverse( function ( child ) {
                        if ( child instanceof THREE.Mesh ) {
                            child.material = material;
                            child.geometry.computeFaceNormals();
                            child.material.overdraw = 0.5
                        };  
                       });
                       object.scale.set(3, 3, 3);
                       object.position.x = 1;
                       object.position.y = 1;
                       object.position.z = 1;
                       object.rotation.set( 25, 25, 25 );
                       scene.add( object );
                    }   
                );
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   gaitat    7 年前

    你的模型在你的视口之外,这就是为什么你看不到它。加载模型 https://codepen.io/anon/pen/qPmyPz?editors=0010 你看得很清楚。现在注释第80-82行(这是默认行为)并重新加载模型。你再也看不见了。

    controls 因此,您可以看到模型:

    var bb = new THREE.Box3()
    bb.setFromObject(scene);
    bb.center(controls.target);