三个 js 平滑着色出现平坦
Three js smooth shading appearing flat
我正在加载 .stl
个文件,应用 MeshStandardMaterial
而不触及 flatShading
属性,因为默认情况下它是 false
。
我觉得结果很平淡。如果我尝试设置 flatShading: true
结果是一样的。
我已经尝试了所有我能想到的方法,但是 运行 没有想法 - 欢迎任何建议,谢谢。
geometry.computeVertexNormals();
geometry.computeBoundingBox();
geometry.computeBoundingSphere();
geometry.normalizeNormals();
The result looks very flat to me. If I try setting flatShading: true the result is the same.
STLLoader
始终 returns 非索引缓冲区几何(未连接的三角形汤)。这意味着几何体的面不共享顶点,因此使用 BufferGeometry.computeVertexNormals()
无法生成平滑着色所需的法线。
重新计算边界体积和 BufferGeometry.normalizeNormals()
的使用也与此问题无关。
您可以尝试通过确保资产带有允许平滑着色的法线来解决此问题。或者您 BufferGeometryUtils.mergeVertices() 尝试通过合并顶点生成索引几何体。
我正在加载 .stl
个文件,应用 MeshStandardMaterial
而不触及 flatShading
属性,因为默认情况下它是 false
。
我觉得结果很平淡。如果我尝试设置 flatShading: true
结果是一样的。
我已经尝试了所有我能想到的方法,但是 运行 没有想法 - 欢迎任何建议,谢谢。
geometry.computeVertexNormals();
geometry.computeBoundingBox();
geometry.computeBoundingSphere();
geometry.normalizeNormals();
The result looks very flat to me. If I try setting flatShading: true the result is the same.
STLLoader
始终 returns 非索引缓冲区几何(未连接的三角形汤)。这意味着几何体的面不共享顶点,因此使用 BufferGeometry.computeVertexNormals()
无法生成平滑着色所需的法线。
重新计算边界体积和 BufferGeometry.normalizeNormals()
的使用也与此问题无关。
您可以尝试通过确保资产带有允许平滑着色的法线来解决此问题。或者您 BufferGeometryUtils.mergeVertices() 尝试通过合并顶点生成索引几何体。