unity灯光烘焙

  • Post author:
  • Post category:其他



1,为什么要用灯光烘焙(Lightmapping)

,不使用灯光烘焙的情况下只有直接光照,光线不会计算反弹,直接光照射不到的地方会一片漆黑,在经过烘焙计算后,电脑会模拟光线反弹来生成间接光照,从而照亮场景来接近真实效果,也称为全局光照(GI),在实际项目中,实时的全局光消耗性能太大,所以我们将预计算的Global illumination添加到纹理贴图(Lightmap)里,以便用更少的资源来提供真实丰富的光照信息


2,unity目前有3种渲染管线,3D内置,URP和HDRP

,URP和内置管线效果相差不多,HDRP是基于物理世界来模拟光照,最直接的体现在于光照强度参数的单位,内置管线里的光照强度是一个相对数值,而HDRP中光照强度是物理世界真实数值


3,3D内置管线中的打光步骤:


1,在场景中选择静态物体,将其标记为Contribute GI

2,为场景指定一个skybox

3,创建一盏Directional Light作为主光源,设置为Mixed(可以同时拥有烘焙效果以及实时阴影),按需设置其他灯光选项

4,Light面板使用较低的参数来测试烘焙效果,观察结果

5,为场景中添加Reflection probes,在需要有反射的物体上标记为Reflection Probe Static

6,测试反射探针烘焙,观察结果

7,调整场景中小物体Mesh Render中SCale in Lightmap的尺寸,可以放大一倍,来让小物体的光照信息更加准确

8,也可以考虑将小物体的Contribute GI标签去除,使用Light Probes进行照明

9,添加Post Processing后期效果调整最终画面


4,灯光具体参数讲解


1,Direct Samples(直接光采样):数值越大Lightmap质量越高,烘焙时间越长,默认32

2,indirect Scamles(间接光采样):数值越大间接光相对越高,室外场景100左右。室内场景默认512起

3,Environment Samples(环境光采样):数值越大Lightmap质量越高,默认500

4,Bounce:光线路径的反弹数量,一般默认为2

5,Filtering:减少噪点,默认auto

6,Lightmap Resolution(贴图分辨率):默认40→80

7,Lightmap Padding(UV间隔):2→8

8,LightSize(每张贴图大小):默认1024

9,Compress Lightmaps:压缩贴图


5,注意事项


1,模型导入后勾选生成光照uv,FBX比较复杂的需要调整Pack Margin,可以增大UV之间的间隙,一般设置为8,同步调整Lightmap Padding数值

2,区分室内室外场景,并且物体是否需要反射环境值,一般情况下是反射周围环境,添加多个Reflection Probe后可以关掉天空盒反射,影响烘焙速度

3,静态物体尽可能优化掉不需要烘焙的部分,提高重要物件lightmap精度,同时减少贴图数量,不参与烘焙的物体用Light Probe照明



版权声明:本文为weixin_45469665原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。