我正在使用 Three.js r97,在我的场景中,我有一个使用 BufferGeometry 和有效法线的网格。当我设置 material.flatShading = false 时,我看到一个平滑的网格,但是当我将 SSAO 后处理应用到这个网格时(https://threejs.org/examples/webgl_postprocessing_ssao.html),我可以看到网格三角形,好像它的原始材质 flatShading 设置为 true。我是否缺少可以设置(在深度材质或 SSAO 着色器本身中)的参数以使 SSAO 不显示原始网格三角形,但要平滑?SSAOPass 使用的 depthMaterial 默认具有 flatShading = false ,但在这种情况下似乎并不重要。请看下面的图片。如果需要,我很乐意提供更多细节,因为我已经在这个问题上停留了好几天,现在甚至不确定它是否可以完成,除了通过使用半径、aoClamp 和 lumInfluence 参数使 SSAO 三角形不那么微妙.
网格 - 平面着色(material.flatShading = true):