三个js平滑阴影出现平坦

问题描述 投票:0回答:1

我正在加载.stl文件,在不触摸MeshStandardMaterial属性的情况下应用flatShading,因为默认情况下为false

enter image description here

结果对我来说看起来很平淡。如果尝试设置flatShading: true,结果将相同。

我已经尽我所能想到的一切,但都花光了-任何建议都值得欢迎,谢谢。

geometry.computeVertexNormals();
geometry.computeBoundingBox();
geometry.computeBoundingSphere();
geometry.normalizeNormals();
javascript three.js stl
1个回答
0
投票

结果对我来说看起来很平淡。如果我尝试设置flatShading:true,结果是相同的。

STLLoader总是返回未索引的缓冲区几何图形(未连接的三角汤)。这意味着几何图形的面不共享任何顶点,因此使用BufferGeometry.computeVertexNormals()不能生成平滑阴影所需的法线。

也重新计算边界体积和BufferGeometry.normalizeNormals()的使用与此问题无关。

您可以通过确保资产具有允许平滑阴影的法线来尝试解决此问题。或者,您可以尝试BufferGeometryUtils.mergeVertices()通过合并顶点来生成索引几何图形。

© www.soinside.com 2019 - 2024. All rights reserved.