光照

阴影

阴影能够有效增强渲染画面的立体感和真实感。为了实现这一点,通常使用所谓的 ShadowMap 技术。简单来说,就是把光源作为一个虚拟的相机渲染场景的深度,然后从场景相机渲染画面时,如果物体的深度比之前保存的深度信息中的要深,认为被其他物体遮挡,则渲染阴影。

场景配置

image-20240730114010025

场景中拥有一些配置能够影响全局阴影:

参数应用
Cast Shadow是否投射阴影。这是总开关。
Transparent是否投射透明阴影。开启后,透明物体也能投射阴影。
ResolutionShadowmap 的分辨率。Low 选项使用 512 分辨率,Medium 选项使用 1024 分辨率,High 选项使用 2048 分辨率,VeryHigh 选项使用 4096 分辨率。
Cascades级联阴影 数量设置。一般用于大场景分割 shadowmap 分辨率,可以改善不同距离的阴影锯齿。开启二级级联阴影后,可以通过ShadowTwoCascadeSplits配置,开启四级级联阴影后,可以通过ShadowFourCascadeSplits配置。
Distance最远阴影距离(与摄像机之间的距离),超过这个距离后看不到阴影。
Fade Border阴影衰减距离,表示从阴影距离的多少比例开始衰减,范围为 [0~1],为 0 时表示没有衰减。

灯光配置

image-20240724183629537

要投射阴影,需要场景中有方向光,引擎目前只能为一盏方向光 DirectLight 开启阴影,这主要是因为阴影的渲染使得 DrawCall 翻倍,会严重影响渲染的性能。在没有确定主光(scene.sun)的情况下,引擎会默认选择光强最强的那一盏灯投射阴影:

参数应用
Shadow Type阴影投射类型。不同的类型会影响渲染性能和视觉效果。
Shadow Bias阴影的偏移。防止阴影失真。
Normal Bias阴影的法向偏移。避免阴影失真。
Near Plane渲染深度图时的近裁面。影响阴影的裁剪面和精度。
Strength阴影强度。控制阴影的透明度。

投射物与接受物

image-20240724184711014

网格渲染器组件 中,receiveShadows 能够决定该物体是否接受阴影,castShadows 能够决定该物体是否投射阴影。

透明阴影

1.3 版本开始,引擎支持投射透明裁剪(Alpha Cutoff)物体和透明(Transparent)物体的阴影,其中,透明物体投射阴影需要在场景面板中打开 Transparent 开关:

最后更新于 七月 11, 2024

这篇文档对您有帮助吗?