答案 0 :(得分:0)
这不是缺陷,在深度路径中,您需要进一步传递到SSAO着色器,不考虑透明度,因此您的保留定义平面被检测为平面几何体并获得适当的轮廓。 关于解决方案,我无法真正帮助你。你可以做的是在渲染深度传递之前隐藏所有透明的东西但是然后,AO传递在它上面成倍增加,所以你只是将视觉问题换成另一个。要真正解决这个问题,我认为你还需要一个额外的Three.MaskPass,请看这里:
Rendering multiple scenes, with only 1 using SSAO [Three.js]
希望这会有所帮助。
答案 1 :(得分:0)
您可以将纹理传递到普通/深度片段着色器,并丢弃任何具有alpha< 0.5