16样本值采样核心 SSAO (屏幕空间环境遮蔽)(WebGL实现)
Demo:http://www.artvily.com/renderCase?sample=ssao5
如果一段时间加载不到资源,请刷新页面再试
SSAO是实时渲染中常用的一种屏幕空间环境遮蔽效果,它能很好的更好的表现光照明暗的层次感和立体感,使用SSAO的画面感觉更真实细节也更丰富。上面所给的Demo为了清晰展示SSAO效果,所以场景中的显示对象都是纯色的。
请见下面的两个效果图比较.
没有使用SSAO,画面明暗层次很单调:
使用SSAO, 画面明暗层次细节更丰富立体感更强:
SSAO的相关技术实现(基于OpenGL GLSL): https://learnopengl-cn.readthedocs.io/zh/latest/05%20Advanced%20Lighting/09%20SSAO/
基本技术实现这里就不啰嗦了,但是半球空间采样的样本数量越大,实时渲染运行时性能越低。
这里降低了采样次数,尽量还能保持视觉效果的质量。主要使用了以下三个步骤来优化:
1.采样核心的随机转动,使用了更丰富的随机值,这里用了一张细节更多尺寸更大的noise纹理作为这个随机值
2.在for循环中对样本每一次计算时,再次使用随机值对半球半径做抖动
3.使用合适的模糊机制来平滑低采样带来的噪点
更好效果请见: https://blog.****.net/vily_lei/article/details/87821878