【发布时间】:2016-05-10 05:50:46
【问题描述】:
我正在尝试使用 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 is not a function
如果我评论“mergeVertices()”行,我得到的是一个不同的错误:Uncaught TypeError: Cannot read property 'length' of undefined in SubdivisionsModifier,第 156 行。
我正在尝试的示例代码似乎已经过时(由于 Three.JS 库中的巨大变化,最近经常发生这种情况)。或者,也许我忘记了什么。事实是顶点似乎为空..?
提前致谢!
【问题讨论】:
标签: stl three.js geometry mesh smooth