版权声明:本文为CSDN博主「Papals」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
1. Ambient Environments(全局环境)
定义
Ambient Environments 是一种技术,旨在让我们摆脱场景中的大量补光灯。
组成
Ambient Environments 有两个组件。
Ambient Environment Lights提供照明Ambient Occlusion提供阴影和重要的方向信息。
与反射遮挡类似,Ambient Environments 也使用在渲染时访问的 预渲染遮挡贴图 来为我们的场景提供逼真的阴影。我们可以方便地为 周围环境 和 反射环境 使用相同的环境贴图。
要点
传统上,环境光在生产中从未如此受欢迎,因为它们只是添加了单一的整体颜色,而不是引人注目的照明效果。
Ambient Environments 代表围绕物体的漫反射填充光,它并不代表 直接 光源,而是模拟 间接 反射形成的环境光。
为什么需要 Ambient Environments
- 均匀光照,没有暗斑和光线的缺失
- 光照的调整非常方便
- 运行速度很快
2. Ambient Environment Lights(环境光)
定义
环境光只是一种改进的环境反射。
作用
一个环境光源(Ambient Light Source)表示全方位,固定强度和固定颜色的光源,其均等地影响场景中的所有对象。 渲染时,场景中的所有对象都会以指定的强度和颜色变亮。 这种类型的光源主要用于为场景提供其中不同对象的基本视图。 这是 最简单 的照明类型,可以模拟光线如何分散或反射多次,从而产生均匀的效果。
环境光 可以与 环境遮挡 相结合,以表示场景中每个点的曝光方式,从而影响其可以反射的环境光量。 这会在整个场景中产生漫反射,无方向性的照明,没有明显的阴影,但是封闭和遮蔽的区域变暗。 结果通常在视觉上与阴天相似。
特点
使用环境光的一个显着优点是渲染成本低廉,因此特别适用于可能需要最小化场景中灯光数量的移动应用。
3. Ambient Occlusion(环境遮挡,简称 AO)
定义
环境遮挡 是创建逼真的周围环境的关键因素。 它提供了我们期望从全局照明和其他更复杂的间接照明技术中获得的柔和阴影。 未完全暴露于环境的表面上的光照需要适当地衰减,以使它们不能获得周围环境光的全部贡献。 这是使用 Ambient Environments 技术的主要吸引力之一。
作用
通过描绘物体之间由于遮挡而产生的阴影, 能够更好地捕捉到场景中的细节,可以解决漏光,阴影漂浮等问题,改善场景中角落、锯齿、裂缝等细小物体阴影不清晰等问题,增强场景的深度和立体感。
实现
为了获得这种效果,有必要使用 Ambient Occlusion Render (环境遮挡渲染)或 “Baked” Ambient Occlusion Maps(“烘焙” 环境遮挡贴图)来表示外部光的衰减。
通过以下过程实现环境遮挡:对于每个表面点,光线在 表面法线(Surface Normal)周围的半球中投射。 最终的遮挡量取决于击中场景中其他表面或物体的射线的数量。
要点
由于在所有的漫反射中,贡献度最大的来自表面法线的大致方向,因此对结果进行加权计算,以有利于向该方向投射的样本。 如果有一个直接平行于表面的物体,它将比同一个物体放置在侧面时拥有更多的遮挡。
应从 Ambient Occlusion 渲染中排除透明或玻璃材质。 如果您有不透明度贴图,则需要确保环境光遮挡着色器将此考虑在内。
分类
SSAO- Screen Space Ambient OcclusionSSDO- Screen Space Directional OcclusionHDAO- High Definition Ambient OcclusionHBAO+- Horizon Based Ambient Occlusion+AAO- Alchemy Ambient OcclusionABAO- Angle Based Ambient OcclusionPBAO- Pre Baked Ambient OcclusionVXAO- Voxel Accelerated Ambient Occlusion