Three.js SubdivisionModifier null错误

时间:2012-06-26 02:09:33

标签: javascript three.js

我正在使用Three.js库并尝试将细分修改器应用于模型。我能够成功加载模型,并且我能够成功地将细分修改器应用于CubeGeometry(例如)。当删除下面评论的行时,下面的代码有效,但当然不会有“细分”。当代码按原样运行时,JavaScript控制台会给出错误“未捕获的TypeError:无法读取属性'u'的null”。我最好的猜测是clone()方法尚未完成,因此modify()方法抛出了一个空异常。

有关如何解决此问题的任何想法?

var loader = new THREE.JSONLoader();
loader.load( "models/parrot.js", function( geometry ) 
{
    var material = new THREE.MeshFaceMaterial();
    var mesh = new THREE.Mesh( geometry, material );
    mesh.position.set(-50,25,0);
    scene.add( mesh );

    var smooth = THREE.GeometryUtils.clone( geometry );
    smooth.mergeVertices();
    var divisions = 2;
    var modifier = new THREE.SubdivisionModifier( divisions );
    modifier.modify( smooth );   // This is the line causing the error
    var mesh2 = new THREE.Mesh( smooth, material );
    mesh2.position.set(50,25,0);
    scene.add( mesh2 ); 
});

1 个答案:

答案 0 :(得分:2)

你可以尝试modifier.supportUVs = false来抑制紫外线错误。