我正在尝试使用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 );
});
Run Code Online (Sandbox Code Playgroud)
这是我试过的,它会抛出一个错误:Uncaught TypeError:smooth.mergeVertices不是一个函数
如果我评论"mergeVertices()"行,我得到的是一个不同的错误:Uncaught TypeError:无法读取 SubdivisionsModifier第156行中未定义的属性'length'.
似乎我尝试的示例代码已经过时(由于Three.JS库中的大量更改,这最近发生了很多).或者也许我忘了什么.事实是顶点似乎是空的..?
提前致谢!