微阴影 (Micro Shadows)
高清渲染管线 (High Definition Render Pipeline, HDRP) 使用微阴影来模拟嵌入在游戏对象的材质中但不在其网格几何体中的小细节。HDRP 使用法线贴图和环境光遮挡贴图中的细节来估算这些贴图(如果它们是网格)将投射的阴影。
在下图中,材质中的不同细节层相互产生阴影。
从顶部观察的苔藓地面材质上的微阴影(不透明度为 0.85)。
使用微阴影
HDRP 使用体积 (Volume) 框架来产生微阴影,因此若要启用和修改微阴影属性,必须将微阴影覆盖添加到场景中的体积。要向体积添加微阴影,请执行以下操作:
- 在 Scene 视图或 Hierarchy 中选择 Volume 组件以在 Inspector 中查看该组件。
- 在 Inspector 中,导航到 Add Override > Shadowing,然后单击 Micro Shadows。 HDRP 现在会为此体积所影响的任何摄像机处理微阴影。
微阴影仅对方向光有效。如果启用微阴影,请确保场景中有方向光。
API
要在运行时访问和控制此覆盖,请使用体积脚本 API。由于体积系统的工作原理,可以使用与标准 Unity 组件不同的方式来编辑属性。也需要注意其他细微差别,例如每个属性都有一个 overrideState。这个参数向体积系统指示是使用你设置的属性值,还是使用存储在体积配置文件中的默认值。有关如何正确使用 API 的信息,请参阅体积脚本 API。
属性
要编辑任何 Volume 组件覆盖中的属性,请启用属性左侧的复选框。这也告诉 HDRP 使用您为 Volume 组件指定的属性值而不是使用默认值。如果禁用该复选框,HDRP 将忽略您设置的属性,并改用该属性在 Volume 组件中的默认值。
属性 | 描述 |
---|---|
Enable | 启用此复选框可以使 HDRP 在该体积影响摄像机时计算微阴影。 |
Opacity | 使用滑动条设置该体积的微阴影的不透明度。 |
详细信息
微阴影给人的印象是非常细致的光照,可以捕捉小细节。微阴影取决于如何生成纹理,因此,为了产生更好的效果,请在创作材质的法线贴图和环境光遮挡贴图时考虑以下因素:
- 确保以一致的方式捕捉两个纹理的细节。
- 始终使用相同的管线来生成法线贴图和环境光遮挡贴图。
请注意,处理微阴影比不处理它们更耗费资源。
实用链接
- 这种微阴影技术的灵感来自 Naughty Dog 的以下演示:《神秘海域 4》的技巧艺术 (Technical Art of Uncharted 4)。
- 有关如何以一致方式生成环境光遮挡贴图的示例,请参阅 Sledgehammer 的以下演示:《使命召唤:二战》的材质进步 (Material Advances in Call of Duty WWII)。