Unity Lighting -- 为场景烘焙lightmap

烘焙光照是什么?

        Unity中有两种不同的光照方式:实时光照和烘焙光照。

实时光照

        Unity会在运行时实时计算光照。实时光源每一帧都会进行计算,这意味着它们对于场景中移动的角色和物体的响应性非常好,但它的开销也很大。

烘焙光照

        Unity会在运行前预先计算出烘焙光照。在运行时这些光照效果无法进行修改,对于动态的游戏物体来说,烘焙灯光不会有任何响应。

        计算烘焙光照的过程涉及为整个场景生成UV坐标,这个坐标和材质里的纹理映射的UV坐标是类似的。烘焙后的纹理映射被称为光照贴图(lightmap),创建lightmap的过程被称为光照贴图映射(lightmapping)或烘焙(baking)。

        烘焙光照更加高效,也能用于为用户提供更多更加真实和体验感的光照效果。

改变光照模式

        在Unity中,Light Mode设置能够让我们选择我们想要使用的光照方法:

  •         烘焙的(baked)
  •         实时的(real-time)
  •         混合的(Mixed)

        如果要改变光照模式:

        1. 选择场景中的某个光源游戏物体(比如Directional Light或Spot Light),查看其Inspector里LIght组件的Mode属性:

         2. 将Mode修改为Baked,即可修改光照模式

        3. 如果想要更快速地配置光源的光照模式,可以在Windows->Rendering->Light Explorer窗口中进行快速配置(避免从Hierarchy或场景中去一个个找):

将场景中的光源设置为Static

        如果在运行时一个游戏物体不会发生移动,那么它被认为是静态的(static)。对于此类物体我们可以标记这些游戏物体为static。当游戏物体标记为static时,Unity会预先计算一些相关数据,包括用于全局光照的光照贴图数据。

        在烘焙光照贴图前,我们需要将场景中的光源设置为static。下面的例子以两个路灯模型为例。设置为static的路灯,光源的模式选择为Baked,另外一个非static的则是real-time。

 

 

烘焙光照贴图

        我们可以为渐进光照贴图器(Progressive Lightmapper)选择两种后端。Unity默认使用渐进式CPU光照贴图器(Progressive CPU Lightmapper),这种后端计算上使用的是计算机的CPU和系统RAM。另一种光照贴图器,渐进式GPU光照贴图器(Progressive GPU Lightmapper),则使用计算的GPU和VRAM来计算光照贴图。

        使用GPU方式的光照贴图能够极大地提升光照贴图计算的速度,但前提是计算机的配置能够满足相关的硬件和软件要求,这个要求在这里查看:

Unity - Manual: The Progressive GPU Lightmapper (preview)https://docs.unity3d.com/Manual/GPUProgressiveLightmapper.html

烘焙光照贴图

        1. 在Lighting窗口中(Window -> Rendering -> Lighting),选择Scene标签页,然后点击New Lighting Settings

        2. 将这个光照配置文件命名为BakedLighting 

         3. 将Lighting Mode设置为Baked Indirect。如果你的机器满足GPU光照贴图器的要求,可以将Lightmapper设置为Progressive GPU(Preview)以便加快烘焙速度

        4. 在Lighting窗口,选择Generate Lighting来烘焙光照贴图。我们会在Unity Editor的右下角看到烘焙的进度。

        5. 烘焙过程中注意观察场景中的两个路灯,选择了static和没有选择static的路灯模型有什么区别

        6. 烘焙完成后,移动一下static的路灯模型,可以看到其光照和阴影没有随着路灯的移动而改变。

添加一个面光源(Area Light)

        之前的笔记中提到过,Area Light仅能用烘焙方式作用。我们在场景中添加一个带面光源的模型来看看。

        可以看到,这个模型添加到场景中后,并没有什么光照效果出来。

        

 

        我们再次生成一下烘焙光照贴图,现在就能看到它的效果了。

        如果我们要修改面光源的参数,修改之后,也必须再次烘焙才能看到效果。

设置Mixed光照模式

        我们还可以将Light Mode设置为Mixed来创建混合模式的光源,这种方式结合了动态(real-time)阴影以及烘焙的光照。相比于纯烘焙光照,它会增加存储和运行时开销,但也能改善阴影的质量。对于一个相对较小的轻量级项目来说,通常可以使用Mixed方式,虽然会消耗一定性能但很值得。

        要切换光源为Mixed模式,和前面设置Light mode的操作是一样的,这里不再赘述。

         选择完Mixed模式后,需要在Lighting窗口中点击Generate Lighting来更新烘焙光照贴图。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦枫Leonlew

希望这篇文章能帮到你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值