ssao
SSAO全称“Screen-Space Ambient Occlusion” (屏幕空间环境光遮蔽)。其最先运用于Crysis(孤岛危机)游戏中,通过GPU的shader实现。
基本信息
- 中文名
屏幕空间环境光遮蔽
- 外文名
Screen-Space Ambient Occlusion
- 简称
ssao
简介
SSAO通过采样象素周围的信息,利用“逐象素场景深度计算”技术计算得出的深度值直接参与运算。
效果确实错误还比较大,应该先进行简单的空间划分(或类似处理)然后计算。
不过这种方法只是近似地模拟,效果并不正确,但确实能增强场景的层次感,让画面更细腻,让场景细节更加明显。
不同于显卡驱动中普通的AO选项,burnout的SSAO是全动态的,无需预处理,无loading时间,无需消耗内存,不使用CPU,全由GPU处理,对GPU有较大的消耗
SSAO默认是关闭的,可以在游戏视频选项中打开。
评测
在7950GT下跑,加了ssao后,下降了15%。而且,显卡性能越低,下降的越厉害。效率消耗主要是在于要多渲染一遍场景到深度以及之后进行的ssao处理。这遍可以进行优化,如果物体的纹理不带alpha,则可以把他们都合在一批或几批渲染。至于深度图的尺寸 ,我采用了与窗口一样的尺寸,这样精度高。也可以采用低分辨率,但效果会有锯齿,还需要进行模糊处理才比较自然。当然,如果本来就用了延迟渲染技术,本来就有深度图了,那就可以直接拿来用了。
PRT对比
PRT用于静态场景确实是个比较好的方案,毕竟可以预计算。但是对于动态的场景,还需要动态更新。另外,PRT的质量依赖于网格的细分程度,要是模型太简,则效果也糟糕。
因此,PRT对于虚拟现实项目里的高楼大厦等场景(这些模型都是很精简的)来说,就显得不合适了。
已发行的游戏中,运用SSAO的游戏有:
Battlefield 3(战地3)
Crysis(孤岛危机)
Fallout 4(辐射4)
Burnout(TM): Paradise The Ultimate Box(火爆狂飙5:天堂)
Company Of Heroes 2(英雄连2)
Empire: Total War(帝国:全面战争)