Unity烘焙动态光照实现光源优化

原文地址: http://m.blog.csdn.net/article/details?id=70792577

本文使用Unity5.x版本,由于Unity4.x到Unity5.x更换了光照引擎,所以本文内容只适合于Unity5.x版本
本文向大家介绍Unity烘焙动态光照来实现光源优化
什么是动态光源?
Unity灯光默认是实时光照,也就是说物体在灯光下不同位置产生不同灯光灯光效果
什么是烘焙动态光源?
由于动态光源在实时光照下会大量的Setpass Calls(Draw Calls)
为了减小Setpass Calls,我们烘焙动态光源
将该场景灯光效果烘焙,原理是Unity为我们自动生成光照贴图
这样大大减少了Setpass Calls

接下来我详细介绍下,在Unity实现烘焙动态光照
新建场景,在场景中创建如下对象
下图是对象结构列表

此时我们运行游戏,发现Setpass Calls比较大(手游一般控制在60一下)

我们目标是烘焙光照贴图,实现减少Setpass
我们将Cube设置为静态对象(烘焙贴图)

选中全部点光源,将Baking选择为Baked
Realtime: 实时(默认)
Baked: 烘焙
Mixed: 混合

打开Window->Lighting
勾选中Baked GI
点击Build烘焙(也可以勾选Auto,自动更新)

此时在Lightmap窗口中会发现已经生成了光照贴图

此时运行游戏观察Setpass Callls发现大大减少

细心的同学可能发现,烘焙后的场景“变亮”了,无伤大雅,因为用户在体验游戏不会感觉出来有什么不一样
但是实现了烘焙,会场景中的主角不再受到光照影响
这是因为我们此时是光照贴图影响这场景的显示,灯光不再实时光照了
有什么方法可以解决呢?
接下来介绍Light Probe Group(探针)
Light Probe Group作用是记录该位置光照信息
按下图创建Light Probe Group

创建多个探针

重新烘焙(勾选了Auto下不需要)

此时在减小了Setpass Calls情况下依旧可以“实时光照”,达到优化目标效果
Light Probe Group的位置摆放的好话,基本可以达到和实时光照效果一样

如果本文对你有帮助,请多多支持,干货满满!!!

原文地址:http://blog.csdn.net/qq_33747722/article/details/70549006

在之前很多小伙伴在做游戏优化时发现,为了使摄像机没有看到的部分隐藏起来达到
但是使用勾选了摄像器的Occlusion Culling属性还是无法实现目标效果
这是因为只是赋予了摄像机具有遮挡剔除功能
具体怎么实现遮挡剔除还需要自己手动操作,步骤如下
在下图我为了测试,在场景中做如下游戏对象

将能被遮挡的游戏对象在Inspect属性面板上设置为静态(Occluder一定要勾选,其他可以不勾选)

接下来打开Wndow->Occlusion Culling,最后烘焙下

最后测试下,检测是否达到预期效果
调节摄像机位置,发现球体不在摄像机视野范围或则被其他静态球体遮挡住的话讲无法显示

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值