threeJS 导入STL模型后,使其平滑

作者: TAIS3 分类: threeJS 发布时间: 2022-09-15 10:43

导入模型的方法就不累赘叙述了.记录一下,备用!

众说周知,STL模型是由很多个细小的三角形组成的,所以直接导入STL模型会有三角形的形状

在此前,可以通过这种方式平滑几何体的阴影

const tempGeo = new THREE.Geometry().fromBufferGeometry( geometry );
tempGeo.mergeVertices();
tempGeo.computeVertexNormals();
geometry = new THREE.BufferGeometry().fromGeometry(tempGeo);

before_r125

但是由于 Geometry 类已被弃用,上面的方法不行了。

可以通过以下的方法尝试一下

// (1) 删除共置顶点之间不匹配的顶点属性
geometry.deleteAttribute('normal'); // 也许:uv, uv2, tangent
// (2) 合并顶点
geometry = BufferGeometryUtils.mergeVertices(geometry);
// (3) 计算平滑法线
geometry.computeVertexNormals();

 

发表回复