unity lighting相关设置

主要参考unity官方文档此文档及其子文档;

lighting mode

unity内部的light有三种lighting mode

  1. Realtime用于计算实时光照;
  2. Mixed用于计算实时光照与全局光照,即混合计算;
  3. Baked用于计算全局光照,没有实时部分,其全局光照采用预计算存储于light map与light probe中

lighting settings

lighting settings与lighting mode共同决定了light的计算方式(shadow的相关设置还需要与quality setting配合)

  1. lighting mode为Realtime时,lighting settings的Realtime Lighting可用于设置是否开启Real Global Illumination,real GI主要通过预计算static object之间的surface-to-surface light paths关联性来达到实时GI的目的;当Real Global Illumination不开启时,为正常的实时直接光照与实时阴影,无间接光照,当Real Global Illumination开启时,包含了实时间接光照;
  2. lighting mode为Mixed时,lighting settings的Mixed Lighting可用于设置混合的方式
  • Baked Indirect mode提供最高质量的光照,其设置只牵扯间接光照:其间接光照预烘培至light map(static object)与light probed(dynamic object)中,阴影的计算不受影响(只要在shadow distance范围之内,且不分static object与dynamic object,都采用实时阴影;shadow distance范围之外没有阴影);
  • Subtractive提供最低质量的光照,其设置牵扯直接光照、间接光照、阴影:针对static object,其只接受主光源下dynamic object的实时阴影(distance范围之内有,之外没有),其它所有实时光照、间接光照、阴影等光照信息都是预计算在light map中的,并且这里实时光照不包括平面光反射==;针对dynamic object,其接受实时光照、dynamic object的实时阴影,static object的阴影与间接光只能通过light probe计算;
  • Shadowmask提供中等质量的光照,其设置牵扯间接光照、阴影,直接光照正常计算:针对static object,其接受dynamic object的实时阴影(distance范围之内有,之外没有),static object的阴影烘培至shadow mask,间接光照预烘培至light map;针对dynamic object,其接受dynamic object的实时阴影(distance范围之内有,之外没有),static object的阴影与间接光照预烘培至light probe;
  • Distance Shadowmask提供较高中等质量的光照,与Shadowmask类似,其设置牵扯间接光照、阴影,直接光照正常计算:在shadow distance范围之内,其作用与Baked Indirect mode一致,其间接光照预烘培至light map(static object)与light probed(dynamic object)中,针对dynamic object与static object,都采用实时阴影计算;在shadow distance范围之外,dynamic object不投射阴影,static object通过预烘培投射阴影,static object通过shadow mask接受static object的阴影,通过light map接受间接光照,dynamic object通过light probe接受static object的阴影与间接光照;
  • shadow mask: shadow mask类似与light map,两者共享一套UV布局,但是shadow mask内部只存储阴影信息,由于GPU通道的限制,一个texel只能存储4盏光源的阴影信息,因此对于多光源范围重叠的现象,只有四盏光源起作用,其它的光源(那些光源由bake系统决定)将按baked方式计算,light probe同样只支持4盏重叠光源的阴影;

  1. lighting mode为Baked时,lighting settings的Lightmapping Settings可用来设置bake所需要light map的一些参数,包括light map分辨率,bake采样数等等。
  • Baked Lighting主要用于改善局部亮度,Unity将直接光照与间接光照bake至light map(static object)与light probe(dynamic object)中,不包括阴影的bake,并且bake的光照不包括平面反射部分;值得注意的是baked lighting始于阴影无关的光照;

你可能感兴趣的:(unity,Shader,Unity,计算图形学)