光照烘培系统-1

光照贴图(Lightmap)

静态物体所受光影效果, 提前计算渲染到一张贴图中,引擎运行时,取贴图计算物体所受光影效果,在保障画面的同时,减少实时光影计算,提高渲染效率,采用的是全局光照技术。

Global Illumination 全局光照(GI)

全局光照 = 直接光照(Direct Light) + 间接光照(Indirect Light)

直接光照 = 光源发出的光线照射到物体上的光照。

间接光照 = 光线经过其他物体,反射到物体的光照。

Unity GI(global illumination 全局光照),有两种。只有静态物体才能包含在烘焙和预计算中。

  • Realtime GI (预结算全局光照)
  • Baked GI (烘培全局光照)

所有Mode为Realtime的Light都没有烘培光照,动态自发光物体的光照也没有被烘培。(Unity2018.2.20f1)

 

1. 场景烘焙设置:

1. 1Lighting Setting 中 Realtime GI 和 Baked GI 都不勾选(静态物体无lightmap)

Realtime 实时渲染时:静态物体和动态物体都会计算该光源。
Mixed 无法选择该模式
Baked 无法选择该模式
   

1.2 Lighting Setting 中 只勾选 Baked GI (静态物体有 baked lightmap)

Realtime

烘焙时:静态物体的baked lightmap不会计算该光源。

实时渲染时:静态和动态物体都会计算该光源。

Mixed

烘焙时:不同的Lighting Mode设置会有不同的效果

实时渲染时:静态和动态物体都会计算该光源。

 

Baked

烘焙时:静态物体的baked lightmap会计算接受到该光源的直接光,间接光信息和阴影。

实时渲染时:静态和动态物体都不会计算该光源。

   

下图光源Point Light,Point Light(1)都是 Mode = Baked,烘焙完了隐藏光源,静态物体Sphere仍然有直接和间接光照效果。

下图光源Point Light,Point Light(1),Directional Light,都是 Mode = Mixed,根据Mixed Lighting中Lighting Mode来决定烘培效果。

  • Lighting Mode = Subtractive。Mode = Mixed的Light直接光,间接光,阴影都直接烘培到baked lightmap。(如同Backed)

左边静态物体,右边非静态物体。关闭光照,左侧物体直接光照,间接光照,阴影不受影响,右侧物体相反。

 

  • Lighting Mode = Shadowmask。这种模式除了烘焙间接光照外,还会把静态物体的的阴影烘焙到Shadowmask中。内存中多了一份Shadowmask,减少了静态物体阴影的计算,占用性能小了一点。

Ps:开启Shadowmask Project Setting -> QualitySettings -> Shadowmask Mode为Shadowmask。切换Distance Shadowmask和Shadowmask就可以实现实时阴影与烘焙阴影的切换。

如下图:左边为静态物体,右边为动态物体,改变光照方向,左边物体间接光和阴影不受影响。

  • Lighting Mode = Baked Indirect。只烘培静态物体的受到的间接光照。直接光以及阴影进行实时计算。左侧静态物体,间接光照效果关闭光照的情况下也有,右侧动态物体相反。


1.3 Realtime GI 和 Baked GI 都勾选(静态物体有 realtime lightmap和baked lightmap)

Realtime

烘焙时:静态物体的realtime lightmap会计算接受到该光源的间接光信息,baked lightmap不会计算该光源

实时渲染时:静态和动态物体都会计算该光源

Mixed

烘焙时:不同的Lighting Mode设置会有不同的效果。具体参照上一条。

实时渲染时:静态和动态物体都会计算该光源

Baked

烘焙时:静态物体的realtime lightmap不会计算该光源信息,baked lightmap会计算接受到该光源的直接光和间接光信息

实时渲染时:静态和动态物体都不会计算该光源

   

1.4 环境光

不开启Realtime GI,环境光默认Baked,烘焙时候光照效果烘焙到baked lightmap,运行时候动态改变环境光,静态物体不会受到影响。如下图烘焙时候环境光是黄色,运行时候动态改变环境光为紫色。静态物体不受影响。

开启Realtime GI,可选择Baked,和Real Time。Baked和上图效果一样,Real Time和其他Light一样,会被烘焙到realtime lightmap。运行时改变环境光的属性静态物体和动态物体的光照效果都会发生改变(静态物体的Realtime lightmap改变)。

参考:

https://blog.csdn.net/duotemplar/article/details/80554342

https://www.cnblogs.com/bananana/p/8867537.html

https://www.jianshu.com/p/a55973c6b596

https://www.jianshu.com/p/c4c21df632a5

https://blog.csdn.net/lengyoumo/article/details/103910249

https://blog.csdn.net/zhenghongzhi6/article/details/80826765

https://www.jianshu.com/p/593a9324f1e2

https://blog.csdn.net/wangjiangrong/article/details/100096586

https://www.jianshu.com/p/7594b044e6dc

http://ma-yidong.com/2017/09/02/mixed-lighting-lightmap-shader-in-unity/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章