Unity预计算全局实时GI(一)

来源:互联网 发布:自媒体 内容来源 知乎 编辑:程序博客网 时间:2024/05/01 22:30

在Unity中,对于预计算的全局光照(GI)或反射光照有两种可用但区别很大的技术可被使用:它们是烘焙全局光照(Baked GI) 和预计算实时全局光照Precomputed Realtime GI。本教程主要讲解预计算实时全局光照(PRGI)。

当启用PRGI时,光照预计算过程指的是在Unity 编辑器模式下计算静态几何对象物体周围光的反射,并存成数据在游戏运行时使用的过程。这个过程减少了原本必须在游戏运行时的光照计算量,可以让项目在保持互动帧率的同时,还允许使用实时反射光照。

当启用烘焙GI(Baked GI)时,预计算的过程会离线生成传统的光照贴图(Lightmap),这些贴图会以资源(Assets)的形式存在项目中,但是无法在运行时时被更改。而PRGI则是使用不同的方法生成光照贴图, PRGI计算的结果会被存成光照数据文件(Lighting Data Asset),这些数据包含了在游戏运行时需要交互地生成和更新一组低分辨率光照图的信息。

不过,除非场景已经被合理地准备并且优化,否则完成这些计算所需的时间可能会很长。下面我们一起来看一下如何针对Enlighten系统(Unity中PRGI以及Bake GI解决方案的后台处理)来做场景优化,从而把预计算时间从几小时缩小到几分钟。

本套教程我们将会讲解:

* 如何定义适合当前场景的光照分辨率

* 了解什么是Charts,以及它是如何影响我们的预计算时间的.

* 如何开始预计算过程.

* 使用光照探头来降低光照方案的复杂度.

* 改进由Unity PRGI自动拆解出的UV.

* 集群(Clusters)是什么,以及如何用它来产生全局光照(GI).

* 如何使用光照贴图参数来微调每个游戏对象上的光照.

一旦我们学会并且应用了这些技术,我们就可以充分利用PRGI的优点:快速的光照迭代,在光照过程中更加快速地进行试验的能力以及在游戏运行时的实时反射光照的能力。

减少预计算时间从几小时缩小到几分钟

在本教程所使用的Lighting Tutorial场景中,用没有优化过的默认设置,在我们的测试机上预计算光照大约花了7.5个小时。对于这样复杂的场景,显然这是无法接受的。


默认场景: 预计算花费7.5小时.优化过的场景: 预计算花费2.25分钟.

使用本教程所介绍的技术进行大约30分钟的场景准备后,这个场景的预计算时间仅仅花了2.25分钟就得到了产品等级的效果。这个技术的好处是显而易见的:可以快速地迭代场景光照而不需要重新计算GI以及在在游戏运行时改变GI的光照。

下载本教程所用的资源

贯穿本教程我们将会使用 光照优化教程工程(Lighting Optimisation Tutorial),这个工程可以从 Unity Asset Store资源商店下载:https://www.assetstore.unity3d.com/en/#!/content/73563

本教学所用的是Scenes/Article目录下的范例场景:LightingTutorialOptimal、LightingTutorialNonOptimal、LightingTutorialStart。

* LightingTutorialOptimal:展示使用PRGI如何能用最短预计算的时间呈现出产品等级的结果。

* LightingTutorialNonOptimal:呈现了我们在项目中常看到的问题,要么造成无法烘焙,要么花费无法接受的时间烘焙,这是一个很好的错误配置场景的案例。

* LightingTutorialStart:这是我们将在教学过程中一直用到的场景,我们会按照步骤一步一步将它完成,变成一个产品等级的场景。


下一篇:Unity预计算全局实时GI(二)- 实时分辨率

阅读全文
0 0
原创粉丝点击