Shadowmask

原文链接:Shadowmask
ShadowmaskShadowmask光照模式下的一种模式,设置后场景中所有混合光都会使用该模式。使用以下方法将混合光设置为Shadowmask
- 在光照窗口中,选择场景标签,在混合光中,将光照模式设置为Shadowmask
- 在质量设置(Edit>Project Settings>Quality)中,将Shadowmask mode设置为Shadowmask
查看文档Mixed lighting了解混合光的更多内容,查看文档Light modes了解其他可用的光照模式。
Shadowmask是一个和对应lightmap有一样的UV布局和分辨率的纹理。因为现在GPU限制纹理最多有4个通道,Shadowmask的每个纹理点上最多存储4个光照的遮挡信息。
Unity预处理最多4个重叠的光照从静态GameObject向静态GameObject投射的阴影,并且存储到一个独立的Shadowmask中。如果超过4个光照重叠了,所有多出来的光照会退化成Baked Lighting。烘培系统决定哪些光照退化成Baked Lighting,并且在烘培过程中保持一致,除非有一个重叠的光照发生了变化。Light Probes同样最多接受4个光照的遮挡信息。
接受阴影的物体(shadowmask的纹理点)独立计算光照重叠。也就是说只要光照边界不在空间中发生重叠,一个物体能够只使用Shadowmask/Probe的一个通道,受到10个不同混合光照的影响。如果光照发生重叠,那么会使用其他的通道。重叠超过4个光照,就会退化成完全烘培的模式。
Shadowmask模式中:
- 静态GameObject使用shadowmask从其他静态GameObject获取阴影,不受Shadow Distance影响。使用shadow map从动态GameObject获取阴影,受Shadow Distance影响。
- 动态GameObject使用shadow map在Shadow Distance范围中从其他静态物体获取阴影。使用光探测器从静态物体获取阴影。阴影的保真度取决于光探测器的密度和网格婉然使用的光探测器模式。
Unity会自动合成静态和动态GameObject的重叠阴影,因为shadow masks(保存静态GameObject的光照和阴影信息)和shadow maps(保存动态GameObject的光照和阴影信息)只编码了遮挡信息。
一个Shadowmask模式适用的例子是制作一个使用镜面材质,烘培柔软阴影的完全静止场景,一个离相机不太近的动态角色向场景中投射阴影。另一个例子是烘培阴影延伸到地平线的开放世界场景,但是不能有类似白天黑夜地动态光照。

Advantages and disadvantages of Shadowmask mode

Shadowmask模式的性能需求很适合中低端PC或者移动设备。下面是Shadowmask模式的主要优点和确定。

优点

  • 提供和Realtime Lighting一样的视觉效果
  • 能够实时在从动态GameObject向静态GameObject投射阴影。
  • 着色器的一个纹理操作能处理所有静态GameObjects的光照和阴影
  • 自动合成静态和动态GameObject的重叠阴影
  • 由于不在shadow maps中渲染静态GameObject,中低性能即可满足需求
  • 提供间接光

缺点

  • 从静态GameObject到动态GameObject的阴影只能使用光探测器提供低分辨率阴影
  • 最多只允许4个重叠光照
  • lightmap纹理集增加了内存需求
  • shadow mask纹理增加了内存需求

  • 2017-09-18发布limited editorial review
  • 光照模式在5.6中增加
  • 在Unity 2017.1中增加了计算光照重叠的建议

你可能感兴趣的:(unity,翻译)