我正在加载.stl
文件,在不触摸MeshStandardMaterial
属性的情况下应用flatShading
,因为默认情况下为false
。
结果对我来说看起来很平淡。如果尝试设置flatShading: true
,结果将相同。
我已经尽我所能想到的一切,但都花光了-任何建议都值得欢迎,谢谢。
geometry.computeVertexNormals();
geometry.computeBoundingBox();
geometry.computeBoundingSphere();
geometry.normalizeNormals();
结果对我来说看起来很平淡。如果我尝试设置flatShading:true,结果是相同的。
STLLoader
总是返回未索引的缓冲区几何图形(未连接的三角汤)。这意味着几何图形的面不共享任何顶点,因此使用BufferGeometry.computeVertexNormals()
不能生成平滑阴影所需的法线。
也重新计算边界体积和BufferGeometry.normalizeNormals()
的使用与此问题无关。
您可以通过确保资产具有允许平滑阴影的法线来尝试解决此问题。或者,您可以尝试BufferGeometryUtils.mergeVertices()通过合并顶点来生成索引几何图形。