记录下最近学习SSAO的心得,免得过段时间又忘记了,毕竟好记性不如烂笔头。
SSAO也就是环境光遮蔽,是一种实时渲染中模拟环境光线被遮挡的技术,性能比较高,可以在图形的后处理中实现。它的基本步骤如下:
1. 在真正渲染场景之前,先使用MRT技术,将深度值写入到一个纹理中。
2. 然后开始真正的渲染。在片段着色器中将当前的屏幕坐标A转换为归一化坐标,然后再转换为三维坐标P
3. 以三维坐标P点为中心,以R为半径的球体空间内(如果有法线,则为半球体空间),产生若干随机数作为采样。
4. 将采样点转换为屏幕坐标G,根据G.x和G.y从深度缓存纹理中取出深度值cacheZ,如果G.z > cacheZ,就用A.z-G.z作为当前采样点的遮蔽。
5. 计算采样点的遮蔽的平均值,作为屏幕A点的遮蔽因子,用于影响环境光照计算。
来源:oschina
链接:https://my.oschina.net/u/1273706/blog/3162338