我正在尝试使用Three.js加载一些STL文件。模型已经成功加载,但是有太多的三角形需要合并/平滑。
我之前在其他3D格式中成功地应用了平滑加载地形,但是我无法在使用STLLoader加载STL文件后对BufferGeometry进行操作。
var material = new THREE.MeshLambertMaterial( { ... } );
var path = "./models/budah.stl";
var loader = new THREE.STLLoader();
loader.load( path, function ( object ) {
object.computeBoundingBox();
object.computeBoundingSphere();
object.computeFaceNormals();
object.computeVertexNormals();
object.normalizeNormals();
object.center();
// Apply smooth
var modifier = new THREE.SubdivisionModifier( 1);
var smooth = smooth = object.clone();
smooth.mergeVertices();
smooth.computeFaceNormals();
smooth.computeVertexNormals();
modifier.modify( smooth );
scene.add( smooth );
});
这是我尝试过的,它抛出了一个错误:Uncaught TypeError:smooth.mergeVertices不是函数 如果我注释掉“mergeVertices()”行,我得到不同的错误:Uncaught TypeError:无法读取未定义的属性'length'SubdivisionsModifier,第156行。 看起来我尝试的示例代码已经过时了(由于Three.JS库的巨大变化,最近经常发生这种情况)。或者我忘记了什么。事实上,顶点似乎为空..?
提前致谢!