说到ssao 就要从ao说起,ao,即间接环境光遮蔽技术。我们知道现实中的光线,除了来自太阳和电灯的直射光线以外,光线碰到物体以后,还会再次反射,折射,而再次反射折射的过程中,又会被其他物体遮挡,而留下阴影。所以实际上,现实中你看到的阴影,不只是直接光源,如阳光电灯被物体遮挡所留下的阴影,还有许多是它们被间接的反射和折射后所留下的影子,而ao的目的就是模拟这种间接阴影的形成。
从上到下分别是孤岛危机2中的ssao,ssdo,以及最低特效下的木有任何ao。
从上图我们可以更清楚地发现:ao的开启为墙壁的砖缝带来了阴影。而ssdo是孤岛危机2 dx11中带来的新的ao处理方式,它的亮点就是“动态的ao"
我们知道,游戏中的直接光源可以是动态的,而所谓牵一发动全身,一旦直接光源的照射角度,照射强度发生变化的时候,那么与它相关的反射光,折射光也会相对地发生变化,那么这些间接的反射光,折射光被遮蔽所留下的阴影情况也自然会发生变化。传统的ssao在面对这种复杂情况时容易发生最终显示效果上的错误,因此实际上在dx9的孤岛危机2中虽然也有ssao,但其实它对于动态间接光照的遮蔽计算是被关闭的,也就是“死水一般的ssao",而ssdo的出现则可以实现精确地处理全动态范围的间接环境光遮蔽情况,因此在dx11版中你所看到的ao,是随着环境光源的变化而变化的。
实现原理:
ssao:屏幕空间环境光遮蔽,是ao被摆上台面后,最早提出的,一种环境光遮蔽阴影计算与实现技术。原理是这样的:我们知道物质的表面是凹凸起伏的,而游戏为了表现物体起伏,通常是在物体模型和物体凹凸纹理上做文章。ssao的目的就是检测这些凹凸纹理表面的凹凸情况,也就是”深度值“来判断哪些物体在凹的地方,那些物体在凸的地方。凹的地方被间接光源照射以后,它的光会被凸的地方挡住,从而产生阴影,于是ssao检测到以后,赋予它一个阴影。
ao的开启为墙壁的砖缝带来了阴影,而ssdo是孤岛危机2 dx11中带来的新的ao处理方式。它的亮点就是“动态的ao"。我们知道,游戏中的直接光源可以是动态的。而所谓牵一发动全身,一旦直接光源的照射角度,照射强度发生变化的时候,那么与它相关的反射光,折射光也会相对地发生变化。那么这些间接的反射光,折射光被遮蔽所留下的阴影情况也自然会发生变化。传统的ssao在面对这种复杂情况时容易发生最终显示效果上的错误,因此实际上在dx9的孤岛危机2中虽然也有ssao,但其实它对于动态间接光照的遮蔽计算是被关闭的,也就是“死水一般的ssao"。而ssdo的出现则可以实现精确地处理全动态范围的间接环境光遮蔽情况,因此在dx11版中你所看到的ao,是随着环境光源的变化而变化的。