Unity AO SSAO

AO是干吗的?

  Ambient Occlusion,环境遮罩,可以类比阴影,前者算是环境光的阴影,后者是直接光照的阴影,描述了场景中

  凹凸遮挡下的环境光表现,模拟的是大自然中间接光的不散射效果

AO效果怎么实现,在渲染中?

  1. 最好的方式,就是以当前点出发,在其半球面上向各方向发射大量光线,计算其平均的可见性,来得出一个曝光

   度,比如有一半的方向不可见,发出的光线被遮挡了,那么曝光度就是0.5,但是这样计算量太大,适合离线处理

  2. SSAO,Screen Space AO,基于屏幕空间的AO,跟后处理的普通原理一致,是基于屏幕像素的,这样的话,就

   与场景复杂度没有关系了,而且可以实时计算

SSAO原理?

  将深度缓存当成场景屏幕化的代表,用深度比较计算代替光线发射遮挡计算,如果有法向的缓存,以R为半径,在当前点的半球空间

  随机采样一些点,以这些点与当前点的深度关系,计算出当前点的曝光度

SSAO的问题

  当采样点较少时,会产生不平滑的问题,这时需要使用平滑滤波的方式来消除采样不足产生的噪点   

猜你喜欢

转载自www.cnblogs.com/hiker-online/p/12445278.html
ao