平行光
初级 设计师 美术人员
**平行光(Directional light)**从单一方向均匀照射。它们通常用于模拟太阳等巨大而遥远的光源,并会投射阴影。默认情况下,你在 Stride 中创建的新场景都包含一个平行光。

场景编辑器使用以下图标表示平行光的位置:

选中平行光后,gizmo 会显示光源的主要方向:

属性

| 属性 | 说明 |
|---|---|
| Color | 光源颜色(RGB) |
| Shadow | 参见下文的阴影属性 |
| Intensity | 光源强度。颜色会在发送到着色器之前乘以该值。注意:负值会产生黑暗并带来不可预测的效果 |
| Culling Mask | 定义哪些实体组受此光源影响。默认情况下,所有组都受影响 |
平行光投射的阴影
与点光源和聚光灯一样,平行光也会投射阴影。但是,平行光投射的阴影可能分布在很大的视野范围内,因此需要特殊处理来提高其真实感。
平行光使用一种附加技术——级联阴影映射(cascaded shadow mapping)。它将遮挡物的深度从光源视角渲染到一张纹理中,然后结合遮挡物信息渲染场景。
这种方法将从摄像机视角看到的深度范围切分成不同分辨率的若干部分或"级联"。每一级联离摄像机越近,分辨率就越高,其阴影的分辨率也越高。

简单来说,阴影离摄像机越近,质量就越好。这意味着你可以将近处(你能看到)的阴影分配更多内存,而给远处的阴影分配更少内存。
你可以使用一个、两个或四个级联。使用的级联越多,节省的内存越多,但阴影随距离增加而降低的分辨率也越明显。
下面是一个由平行光使用四个级联生成的阴影贴图示例:

在编辑器中查看阴影级联
在属性网格的 Shadow 属性下,启用 Debug 选项。
| 级联调试关闭 | 级联调试开启 |
|---|---|
![]() |
![]() |
不同的颜色表示每个距离范围对应的级联(绿色:0,蓝色:1,紫色:2,红色:3)。
平行光阴影属性
| 属性 | 说明 |
|---|---|
| Filter | 过滤用于产生柔和阴影而非硬阴影。目前实现的技术是 PCF(Percentage Closer Filtering,百分比邻近过滤) |
| Size | 阴影贴图纹理的大小。对于平行光,此值默认为 x1,因为平行光比作用范围较短的光源对视觉影响更大 |
| Cascade Count | 用于切分光源覆盖深度范围的级联数量。可选值为 1、2 或 4 个级联;典型场景使用 4 个级联 |
| Stabilization mode |
|
| Depth Range | 如何计算从摄像机视角可见的深度范围。这会直接影响级联切分发生的近点和远点 |
| Blend Cascades | 平滑各级联之间的过渡 |
| Partition mode |
|
| Depth Bias | 在采样深度上增加的深度量,用于避免阴影痤疮(shadow acne)现象 |
| Normal Offset Scale | 沿法线方向乘以深度偏移的系数 |
| Debug | 在场景编辑器中显示阴影贴图级联 |

