Unity烘焙动态光照实现光源优化
2017-04-26 13:41
471 查看
本文使用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的位置摆放的好话,基本可以达到和实时光照效果一样
如果本文对你有帮助,请多多支持,干货满满,欢迎前来阅读!!!
本文向大家介绍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的位置摆放的好话,基本可以达到和实时光照效果一样
如果本文对你有帮助,请多多支持,干货满满,欢迎前来阅读!!!
相关文章推荐
- Unity烘焙动态光照实现光源优化
- Deferred Lighting (延迟光照) + Light Pre-Pass 实现多光源动态阴影
- Deferred Lighting (延迟光照) + Light Pre-Pass 实现多光源动态阴影
- Deferred Lighting (延迟光照) + Light Pre-Pass 实现多光源动态阴影
- UnityShader入门精要学习笔记(五):Unity中实现漫反射光照模型
- 【Unity 优化】Skinned-Mesh 能动态合并嘛?
- 【远程调用框架】如何实现一个简单的RPC框架(三)优化一:利用动态代理改变用户服务调用方式
- Unity Shader入门精要笔记(九):Unity 的基础光照——漫反射的实现
- unity 协程 实现物体颜色动态切换
- unity shader学习笔记(十四)——Unity中的复杂光照之光源类型
- 动态调整TLS record size优化性能原理及实现
- 让IoC动态解析自定义配置(提供基于Unity的实现)
- Unity预计算全局光照的学习(速度优化,LightProbe,LPPV)
- Unity 5.x动态加载光照信息(所有坑已踩)
- Unity结合移动端实现动态抠图功能支持Android和IOS
- 网站性能优化:动态缩略图技术实现思路
- Unity中使用Occlusion Culling进行遮罩剔除来实现场景优化
- unity基础开发--实现动态加载资源
- 动态规划之-用局部最优和全局最优实现时间优化
- 【Unity优化】如何实现Unity编辑器中的协程