根据这个SSAO 示例,我一直在尝试将 SSAO 添加到我的游戏中
不幸的是,我的透明树现在叛逃了:
请告知如何解决它。
这不是缺陷,在需要进一步传递给 SSAO 着色器的深度路径期间,不考虑透明度,因此您的离开定义平面被检测为平面几何形状并获得适当的轮廓。关于解决方案,我真的无法帮助您。您可以做的是在渲染深度通道之前隐藏所有透明的东西,但是随后,AO 通道会在其上成倍增加,因此您只需将视觉问题与另一个问题进行交易。要真正解决这个问题,我认为您需要额外的 Three.MaskPass,请参见此处:
渲染多个场景,只有 1 个使用 SSAO [Three.js]
希望这可以帮助。
您可以将纹理传递到法线/深度片段着色器并丢弃任何 alpha < 0.5 的片段