SSAO的优化

admin 841

优化前

predepth生成深度图,法线根据深度在shader中计算出来,也可以通过渲染生成。

生成AO图

高斯模糊,横一遍竖一遍

根据法线,重新计算AO图

在不透明物体渲染的时候,正常采样AO即可

问题

最主要的还是depthonly的太费了,多了好多pass

优化

在渲染skybox后,拷贝深度图

生成AO图

高斯模糊,横一遍竖一遍,利用多uv方式来规避随机采样,以及downsample提升效率

根据法线,重新计算AO,并直接渲染到颜色缓存区,控制blend方式来达到把ao乘以原来的颜色

优化后问题

开启了msaa,又需要拷贝深度图,只能软resolve了(取深度最大值),不能利用on-chip msaa。而且可能有兼容性问题

优化前后对比

无ssao效果

unity内置ssao效果

FastSSAO效果

效果感觉还可以

渲染流程对比

unity内置ssao

FastSSAO

可以看出来depthprepass没了