SSAO的优化

优化前


  • 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没了

posted on 2023-03-24 11:12  marcher  阅读(155)  评论(0编辑  收藏  举报

导航