当前位置: 代码迷 >> 综合 >> Lighting Modes
  详细解决方案

Lighting Modes

热度:1   发布时间:2023-11-21 16:45:43.0

灯光的每一个模式,都在lighting window 面板中有对应的设置

 Real-time lighting

   实时光照投射的阴影的质量可以在projectsetting  quality 里面设置

 

Using real-time lighting with Realtime GI

  使用全局光照,全局光照就是间接光,实时光照是直接光(直接打到物体表面上的光),Window > Rendering>Lighting Settings里面勾选Realtime Global Illumination.,这样场景中就会由直接光和间接光两种。

 全局光照对设备的要求比较高,一般在主机上或者场景比较小的游戏中才会使用,或者应用在光线缓慢变化的地方,不需要光线快速的变化,比如夕阳西下,是一个缓慢的过程

如果想要单个光照不发射间接光(全局光照),可以在light属性中,把Indirect Multiplier 设置为0,表示这个光源只有直接光,如果像全部光源都不发射间接光,直接把Realtime Global Illumination勾选去掉

Mixed lighting

 混合光照:既有实时光照也有全局光照(间接光),间接光需要烘焙存储在lighting map中

 与之对应的lighting window 面板

lighting mode 包含

  • Baked Indirect
  • Shadowmask
  • Subtractive

shadow mask是最常用的 它的distance shadowmask

  最常用,shadow 信息储存在shaodow mask里面,shaodow mask是一个texture,它储存了贴图的uv和分辨率,每个像素最多储存四个通道,每隔个通道的值从0-1,中间值表示软阴影。

Baked Indirect mode(MixLight)

 Baked Indirect 模式, Unity只预计算间接光照,即把它渲染到lightingmap中,在阴影距离范围内,他的阴影效果和实时光照和相似,如果超出阴影设置的范围是没有阴影的,但这个需要更高的配置,一个很好的应用就是在走廊或者一个狭长的过道,视野是被限制的,远距离的物体是没有阴影的,这一点可以参考雾的效果,距离远了就变得模糊。
 

Shadowmask mode

lighting mode  是Shadowmask,Shadowmask mode又分为Shadowmask和Distance Shadowmask,它的模式在edit  projectsetting quality shadow 里面设置

  • Shadowmask: 静态物体使用烘焙光照
  • Distance Shadowmask:在阴影范围内,使用实时光照,阴影范围外使用烘焙光照

Shadowmask模式:

  • 静态对象接收静态游戏对象的阴影,不管在不在阴影范围内,同时也接受动态物体投射的阴影,不过在阴影范围内

  • 动态物体在阴影范围内接收动态物体投射的阴影,通过Light Probes接收静态物体投射的阴影

在一个都是静态物体的场景中,有比较好的效果,对配置的要求中等

  Subtractive mode

Subtractive 提供低质量的阴影渲染,它只渲染一盏灯光中的阴影,其中包含直射光和间接光,在一些低性能的移动平台或者不支持shadowmask的平台上使用 

Subtractive 时唯一一个把实时光照转换成间接光照的混合灯光模式,它不管unity动态和静态物体的光照信息,因为他把光照都预先烘焙到一个贴图里面了,所以在substractive模式下:

      静态物体接收只接收来自太阳光的阴影投射,不接收任何动态物体的阴影投射

      动态物体只接受实时光,不能从 Light Probes中接收阴影信息,

Advantages

  • 提供静态物体之间高质量的阴影,对性能要求低

  • 一张贴图搞定所有静态物体之间的渲染

  • 提供间接光照

Disadvantages

  • 不提供实时直接光,因此不提供镜面反射

  • 不提供动态物体在静态物体上的光照,除了平行光以外,就是灯光时聚光灯之类的

  • 只提供低分辨率的阴影,动态物体从light probe 中获得静态物体上低分辨率的阴影

  • 它提供了不准确的动态和静态阴影组成