Unity如何实现动态光源的GI

Unity如何实现动态光源的GI,第1张

Unity的光照系统中光照包括直接光照、间接光照、环境光和反射光。

直接光照:光源对于模型的光照。

间接光照:光线在其他模型上的反射所带来的光照。

环境光照:天空盒的颜色。

反射光:光线照射到模型上反射回来的光。

Unity中有两种不同的技术用于预计算照明、反射光。分别是Precomputed Realtime GI 和 Baked GI。

GI

GI的全称global illumination,全局光照。

在windows ->lighting中可以打开设置面板。

Precomputed Realtime GI

预计算实时光照,针对实时静态模型之间的光照信息。

Realtime Resolution:预计算实时光照将场景分成许多的texel(纹素)这个值控制了每个单位有几个texel,它对于模型间的反射光的质量有着很大的影响,但是随着增大也会带来更大的计算量。通常的来说如果是人密集且走动的村庄内这个值设置为2 – 3之间、村庄外设置为0.5 – 1之间。

CPU Usage:游戏中计算这些光照信息时CPU的占用率,分成low、medium、high、unlimited 4个挡位。

Baked GI

能得到更精确的模型之间的反射光信息,但是不能在游戏运行时实时的变动相应的光源信息,如颜色、方向。

这里要注意,如果要使用Baked GI,我们要为需要被烘焙光照信息的模型设置为Lightmap Static。选中模型然后在Inspector面板中点击右上角的Static的下拉列表选中Lightmap Static。

这个在Unity中实现,Unity里面内置了LightMapping,将美术做好的场景模型以及贴图放到工程中,然后在需要灯光的场景处放上静态光,接着用LightMapping烘焙就好 .

制作步骤

制作UV2: UV2可以在,3dsmax先算好,也可进Unity再算。(我是在Unity算 因为我的场景通常是用obj档进来 比较不会有对位的问题 但obj档只能包含1个UV)

2. 打光: 把Key Light打在你想要的地方。(使用Unity Pro还可以用GI去bake 效果更好)

3. Unity Lightmapping AO相关设定:

到Window >Lightmapping打开Light Map功能,初次使用要先选要bake的物件 并勾选Static。

使用Unity直接制作Lightmap

Ambient Occlusion效果设定:

使用Unity直接制作Lightmap

A. 强度设在1。

B. AO的有效距离 单位是m 见後面比较图。

C. 贴图的大小。(细致度)

4. Unity Lightmapping Shadow相关设定 因为Shadow是Static baking的关系,所以不用Pro版也可用 如图:

使用Unity直接制作Lightmap

5. 制作Unity Light Map贴图(Bake): 好了之后按下Bake Scene。

6. 输出。(Export Package)

除了输出已经算好Lightmap的物件外 最重要的是Lightmap要一并输出给相关人员,然後再重新到Lightmapping视窗重新指定light map就可以了。

限制

可在场景中只能即时预览5个光源,到第6个就会看不到效果。

技巧

只测试阴影效果或Key Light效果时,(如颜色) Ambient Occlusion设为0 可加快Baking速度,将Light map resolution调小点 也可加快速度。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11529280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存