最佳练习之设置光照管线。
首先,让我们浏览几个图形渲染的术语,接下来会频繁的遇到它们。
下面的流程图从一个内容创建者的角度,提供了Unity的整个光照管线的高层视图。
在2018年年初之前,在Unity中,只有一个可用的渲染管线,即内置渲染管线 "Built-In Render Pipeline"。使用内置渲染,可以选择forward rendering(前向渲染)或deferred rendering(延迟渲染)。
在2018年1月,Unity公开了可脚本化的渲染管线 Scriptable Render Pipeline (SRP),它允许你通过C#脚本来定制渲染循环。
Unity当前提供了两个预制的(pre-built)SRPs,专为性能和现代(GPU)硬件而设计。
一个tile是一帧中的一个小的二维的正方形像素区域,一个cluster是照相机视景体中的一个三维的体积(volume),如上图所示。两者,tile和cluster渲染技术,都依赖于影响每一个单个tile和cluster的光源列表,每个tile或cluster的光照可以使用该光源列表在一个pass中计算出来。
你可以使用以下面的决策图,根据一些关键条件,来快速找到你应该选择哪个渲染管线。
你可以通过使用 Unity Package Manager (Window > Package Manager)来下载最新版的HDRP。
如果你想要设置你的项目使用HDRP,确保你已经安装了要求的包。然后,使用 HD Render Pipeline Wizard (Window > Render Pipeline > HD Render Pipeline Wizard) 来设置你的项目。
如果你有一些渲染知识,熟悉C#,并且需要为你的项目完全定制渲染器,你可以尝试一下SRP的概念,来创建一个你自己的自定义脚本渲染管线(Custom Scriptable Render Pipeline)。
在Unity中,把你的项目的材质(materials)从内置渲染管线转换到HDRP或URP是相对容易的,因为Unity提供了一个1-click材质转换器(material converter)Edit > Render Pipeline > Upgrade…。
如果你想要在场景中包含间接光照,你必须使用全局照明系统,Unity提供了两种方案,你可以二选一,或者你也可以使用自己烘焙方案(baking solution)。
渐进式光映射器(Progressive Lightmapper)可以优先进行对照相机可见的物体的光照计算,极大加速了光照的迭代,代价是增加了整个场景的总体烘焙时间。
不管你使用哪个全局照明系统,在光照的baking或precomming (即烘焙或预计算) 过程中,Unity仅考虑被标记为 “Contribute GI”的物体。
Unity允许Baked和Realtime GI系统同时处于活跃状态,这使得你能够使用所有光照特征(lighint features)。
光源模式(针对光源,区别于下面要说的光照模式)。
Light组件的Mode属性是造成混淆的常见原因。
在Light Inspector窗口中,有三种Light Modes。
注意,只有启用了Baked Global Illumination系统,光源的模式(mode)才有意义。
场景中所有Mixed模式的光源有具体的baked和real-time能力,这取决于你在Lighting window中选取的光照模式(Lighting Mode)。
有三个可以选择的模式:
当使用HDRP的 Shadowmask Lighting Mode时,在Graphics settings中设置的HDRP Asset会启用Shadowmask feature,对于具体的相机,必须通过 Frame Settings明确地激活(activiate)它。
下表给出了Unity 2019.3中每个渲染管线支持的特征的总体概要。
既然我们已经引入了渲染管线和主要的光照特征,让我们看一些项目例子,看一下应该使用哪些设置来对它们进行光照处理。
如果你想重度依赖Unity的Asset Store来构建项目原型,则内置渲染管线(Built-in Render Pipeline)可能是唯一的选择。
如果你针对的是移动平台,则URP可能是很好的选择,可以确保策略游戏的稳定性能。
如果你打算为PC和主机提供3A品质的视觉效果,HDRP应该是首选的渲染管线。
如果你打算发布PC和主机平台的大逃杀游戏(Battle Royale),具有大规模的环境和全动态的光照,你应当选择HDRP或者扩展它来为你的项目定制渲染管线。
由于SRP的引入,过去几年里,Unity的渲染环境发生了根本性的变化。
希望这篇指南以及它的相关说明让你对各个渲染管线的能力有了较好的理解。
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。