1、什么是局部光照(Local illumination)
简单说:光在模型表面的照射效果。
2、什么是全局光照(Global illumination)也称GI
这个其实是三维软件中的称呼。其实光从太阳经到达地面是经过无数次的反射和折射。
全局光照里面又有Realtime GI(实时全局光照),默认情况下Unity的光源都是实时的,代表这些灯源会把光线照射到场景并每帧更新,
3、两者的异同?
全局光照参考的条件太复杂,而且占据大量的CPU资源!
局部光照只考虑模型表面的照射效果,所以更加灵活,简易。
3-1、Unity的光照系统
在Unity中提供了两种非实时的全局光照。
一种是预计算的GI(Precomputed Realtime GI)
另一种是烘焙的GI(Baked GI)
这两种都是可以执行Build指令或者勾选Auto自动烘焙,才能生效。注意:他们只会计算或烘焙勾选了Lightmap Static 的物体,如果想影响动态物体需要使用灯光探头。
预计算的GI与烘焙GI虽然都能实现GI效果,但是预计算允许对光源记性修改,而烘焙GI完成后在修改光源也不生效。
案例:模拟日夜循环
1、添加光照探头
![](https://img.haomeiwen.com/i642887/7cf54fd51b5cfa1f.png)
2、进行编译
![](https://img.haomeiwen.com/i642887/9066dace2a96a014.png)
3、修改灯光的角度,模拟日落系统
![](https://img.haomeiwen.com/i642887/530c7bd4802da694.png)
4、预计算实时GI的间接光照实现
![](https://img.haomeiwen.com/i642887/19b32f3bd2a3b416.png)
1、首先关闭系统的实时渲染功能
![](https://img.haomeiwen.com/i642887/a9e227277f7c622a.png)
2、添加聚光灯
![](https://img.haomeiwen.com/i642887/fc31ea37e0ab1010.png)
3、进一步测试
![](https://img.haomeiwen.com/i642887/903a3557df1d81a5.png)
![](https://img.haomeiwen.com/i642887/a5228540c3e779ce.png)
打开预计算的实时GI - Precomputed Realtime GI
![](https://img.haomeiwen.com/i642887/76ab28d2326f882e.png)
![](https://img.haomeiwen.com/i642887/9992a903247f31d2.png)
![](https://img.haomeiwen.com/i642887/4d78c914bca4939e.png)
注:设置完LightMap static后的游戏物体不可以移动。
如果场景中有非静态物体也需要接收全局光照,则需要添加Light Probe Group,分布的密度和位置取决于对光照敏感程度的要求和光照变化的强度。
![](https://img.haomeiwen.com/i642887/58285e6ea390ef60.png)
![](https://img.haomeiwen.com/i642887/a8237621ad626dcd.png)
然后烘焙就可以使用了
关于灯光的类型
![](https://img.haomeiwen.com/i642887/0db3ce712bd04b8b.png)
Baking:选项中
![](https://img.haomeiwen.com/i642887/7fddba591514bf4f.png)
Realtime:Unity默认选择Realtime,灯光会通过烘焙GI系统处理直接光源与间接光源。
Baked:只会被场景内的静态对象拿去GI计算,在Baked GI模式下不会照亮非静态物体
Mixed:场景内的静态对象会被烘焙GI拿去做计算,同时仍会继续运算即时光源到非静态对象上。
网友评论