Three.js - SSAO缺陷透明区域

时间:2013-11-11 23:16:04

标签: three.js webgl post-processing ssao

根据SSAO EXAMPLE

,我一直在尝试将SSAO添加到我的游戏中

不幸的是,我的透明树现在叛逃了: enter image description here

请告知如何解决问题。

2 个答案:

答案 0 :(得分:0)

这不是缺陷,在深度路径中,您需要进一步传递到SSAO着色器,不考虑透明度,因此您的保留定义平面被检测为平面几何体并获得适当的轮廓。 关于解决方案,我无法真正帮助你。你可以做的是在渲染深度传递之前隐藏所有透明的东西但是然后,AO传递在它上面成倍增加,所以你只是将视觉问题换成另一个。要真正解决这个问题,我认为你还需要一个额外的Three.MaskPass,请看这里:

Rendering multiple scenes, with only 1 using SSAO [Three.js]

希望这会有所帮助。

答案 1 :(得分:0)

您可以将纹理传递到普通/深度片段着色器,并丢弃任何具有alpha< 0.5