0

我正在使用 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): 在此处输入图像描述

网格 - 平滑着色(material.flatShading = false): 在此处输入图像描述

网格 - 平滑着色 + SSAO: 在此处输入图像描述

4

1 回答 1

1

好的,对于任何对此感到疑惑的人 - 看起来三中的 SSAO 自 r75 以来已被破坏:

https://github.com/mrdoob/three.js/issues/8576

于 2018-11-05T16:39:46.517 回答