环境光遮蔽(Ambient Occlusion)
“AO”为Amblent Occlusion的缩写,中文译为环境光遮蔽。在DirectX 10.1 API推出后,Amblent Occlusion升级为SSAO(Screen-Space Ambient Occlusion:屏幕空间环境光遮蔽);而在微软推出DirectX 11 API后,SSAO升级至HDAO(高解析度环境光遮蔽:High Definition Ambient Occlusion)。
无AO(左)和有AO(有)对比图
我们有必要对AO(环境光遮蔽)的释义进行一个简单了解:AO是来描绘物体和物体相交或靠近的时候遮挡周围漫反射光线的效果,可以解决或改善漏光、飘和阴影不实等问题,解决或改善场景中缝隙、褶皱与墙角、角线以及细小物体等的表现不清晰问题,综合改善细节尤其是暗部阴影,增强空间的层次感、真实感,同时加强和改善画面明暗对比,增强画面的艺术性。可以说AO特效在直观上给我们玩家的感受主要体现在画面的明暗度上,未开启AO特效的画面光照稍亮一些;而开启AO特效之后,局部的细节画面尤其是暗部阴影会更加明显一些。
尘埃2游戏中的AO画质特效设定
SSAO和HDAO均为AO技术的变种或升级,其实目前采用统一渲染架构的图形核心都能够实现AO(环境光遮蔽)效果,而在SSAO在DX10.1中被引入之后,得到了更为优化的代码支持从而实现了更为有效的环境光遮蔽效果。而伴随DX11所一同进化而生的HDAO,相比SSAO和AO有了更进一步的效能提升。HDAO是SSAO的升级,主要更新了用于加速SSAO的函数指令Gather4(在DirectX 10.1中,Gather4允许一个2x2的未过滤纹理替代一个双线过滤的纹理),从而实现更快更好的阴影效果。值得一提的是HDAO这个名称咋一看比较贴近ATI HD系列显卡的名称内涵,再加上SSAO和HDAO都是ATI所力挺的图形技术,故而HDAO也一同写入了DirectX 11 API的函数库中。