我正在使用 Three.js 库并尝试将细分修改器应用于模型。我能够成功加载模型,并且也能够成功地将细分修改器应用于 CubeGeometry(例如)。当下面注释的行被删除时,下面的代码可以工作,但是当然不会有“细分”。当代码按原样运行时,JavaScript 控制台会给出错误“Uncaught TypeError: Cannot read property 'u' of 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 );
});