原文链接:Distance Shadowmask
Distance Shadowmask是Shadowmask的一个版本。场景中所有混合光都会应用这个设置。使用下面的方法将混和光设置为Distance Shadowmask模式。
- 在光照窗口中,选择场景标签,导航到混和光,将光照模式设置为Shadowmask。
- 下一步,打开质量设置窗口,导航到Shadowmask Mode并设置为Distance Shadowmask。
查看文档混和光了解关于这个光照模式的更多内容,查看文档光照模式了解其他可用的模式。
Shadowmask是一个和对应lightmap有一样的UV布局和分辨率的纹理。因为现在GPU限制纹理最多有4个通道,Shadowmask的每个纹理点上最多存储4个光照的遮挡信息。
Distance Shadowmask是Shadowmask光照模式的一个版本,它能从静态GameObject向动态GameObject投射高质量阴影。
在Shadow Distance范围内,Unity将动态和静态GameObject都渲染到shadowmap中,允许静态GameObject向动态GameObject投射清晰的阴影。因此,Distance Shadowmask模式的性能要求比Shadowmask模式要高,它将场景中所有静态GameObject都渲染到shadow map中。
超过Shadow Distance范围时:
- 静态GameObject通过shadow mask从其他静态GameObject接收高分辨率阴影。
- 动态GameObject通过光照探测器从静态GameObject获取低分辨率阴影。
一个合适的例子是使用Distance Shadowmask模式创建阴影延伸到地平线的开放世界场景,复杂的格网实时向移动的角色投射阴影。
Distance Shadowmask模式的优缺点
Shadowmask模式的性能需求适合高端PC和现代游戏终端。下面是Shadowmask模式的主要优点和确定。
优点
- 提供和Realtime Lighting一样的视觉效果
- 能够实时将动态GameObject阴影投射到静态GameObject
- 着色器的一个纹理操作能处理所有静态GameObjects的光照和阴影
- 自动合成静态和动态GameObject的重叠阴影
- 提供间接光
缺点
- 最多只允许4个重叠光照
- lightmap纹理集增加了内存需求
- shadow mask纹理增加了内存需求
- 将静态GameObject的光照和阴影渲染到shadow map增加了性能要求
- 2017-09-18发布limited editorial review
- 光照模式在5.6中增加