Direct X 12 – Ambient Occulusion – 环境光遮蔽

21.3 总结

1. 环境光光照模型模拟了间接光源。在我们之前的光照模型中,环境光的计算只使用了一个恒定量。因此,当物体位于阴影中时,物体只有环境光,那么物体本身表面的3D构造将难以发现。环境光遮蔽的目标就是为环境光计算模型找到一种更好的解决办法,当物体只有环境光时看上去仍然是“3D”的。

2. 环境光遮蔽的原理是,物体表面某一点p所接受的环境光的强度,取决于入射的环境光是否被遮蔽。射线检测是一种模拟物体表面某一点的环境光遮蔽率的方法。以p点为射线原点朝其上方随机射出射线,并检测射线是否与网格模型相交。如果这些射线没有与任何几何体相交,那么物体是完全不被遮蔽;如果相交越多,那么点p被遮蔽地越厉害。

3. 对于实时渲染的应用中动态的物体,如果使用射线检测的方法求出环境光遮蔽率,那么开销会十分巨大。所以,一般来说,我们会使用基于camera空间的场景的法线向量/深度值来模拟SSAO(screen space ambient occlusion,屏幕空间内的环境光遮蔽率)。

留下评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据