Three.js MeshBasicMaterial线框不会渲染

时间:2014-10-31 03:30:40

标签: javascript three.js blender wavefront

从three.js API创建的几何图形工作正常,但是从Blender导出的obj文件在应该是线框时呈现面。我的导入或导出过程有问题吗?

var loader = new THREE.OBJLoader( manager );
loader.load( '../3d/decoy.obj', function ( object ) {
    object.traverse( function(child) {
        if( child instanceof THREE.Mesh ) {
            child.material = new THREE.MeshBasicMaterial( { color: 0x009900, wireframe: true } ); 
            child.scale.set(20,20,20);
            scene.add( child );
        }
    });
}, onProgress, onError );

enter image description here

1 个答案:

答案 0 :(得分:1)

似乎是Wavefront .obj格式的问题。出口到Collada .dae,一切都很顺利。只是注意,遍历是object.scene的一种方法,而不是obj导入中的对象。

var loader = new THREE.ColladaLoader( manager );
loader.load( '../3d/decoy.dae', function ( object ) {
    object.scene.traverse( function(child) {
        if( child instanceof THREE.Mesh ) {
            child.material = new THREE.MeshBasicMaterial( { color: 0x009900, wireframe: true, vertexColors: THREE.VertexColors } ); 
            child.scale.set(20,20,20);
            scene.add( child );
        }
    });
}, onProgress, onError );