三.Unity2019轻量级渲染管线(LWRP)深入学习

一.轻量级渲染管线资产

要使用轻量级渲染管线(LWRP),必须创建LWRP资产并在“Graphics”设置中分配资产。

LWRP资产控制轻量级渲染管线的一些图形功能和质量设置。这是一个可脚本化的对象,继承自“ RenderPipelineAsset”。在“Graphics”设置中分配资产时,Unity从内置渲染管道切换到LWRP。然后,您可以直接在LWRP中调整相应的设置,而不用在其他地方查找它们。

您可以拥有多个LWRP资产并在它们之间切换。例如,您可以选择一个启用“阴影”,另一个禁用“阴影”。如果在资源之间切换以查看效果,则不必每次都手动切换阴影的相应设置。但是,您不能在HDRP / SRP和LWRP资产之间切换,因为渲染管道不兼容。

二.用户界面概述

在LWRP中,您可以配置以下设置:
• General
• Quality
• Lighting
• Shadows
• Advanced

General

在General设置控制管线渲染帧的核心部分。

属性描述
深度纹理 Depth Texture启用此选项后,默认情况下,场景中所有摄像机的LWRP都会渲染深度纹理。如果要使用取决于场景深度的后期处理,软粒子或着色器效果,则必须启用它。启用此功能后,您可以通过_CameraDepthTexture元素在自定义着色器和着色器代码中访问“深度纹理” 。您可以在“摄像机检查器”中为单个摄像机覆盖此设置。
不透明的纹理 Opaque Texture启用此选项可_CameraOpaqueTexture为场景中的所有摄像机创建默认值。类似于内置渲染管道中的GrabPass。所述不透明纹理提供了场景的快照LWRP呈现任何透明网格权利之前。您可以在透明着色器中使用它来创建效果,例如毛玻璃,水折射或热波。您可以在“摄像机检查器”中为单个摄像机覆盖此设置。
不透明的下采样 Opaque Downsampling将不透明纹理上的采样模式设置为以下之一:无:以与相机相同的分辨率生成不透明通道的副本。2x Bilinear:使用双线性滤波生成半分辨率图像。4x Box:使用框过滤生成四分之一分辨率的图像。这将产生柔和模糊的副本。4x Bilinear:使用双线性滤波产生四分之一分辨率的图像。
Quality

这些设置控制LWRP的质量级别。在这里,您可以在低端硬件上提高性能,或在高端硬件上提高图形外观。

提示:如果要为不同的硬件设置不同的设置,则可以在多个“轻量级渲染管道”资产中配置这些设置,然后根据需要将其切换出去。

属性描述
高动态范围 HDR启用此选项后,默认情况下,场景中的每个摄像机都可以在高动态范围(HDR)中进行渲染。使用HDR,图像的最亮部分可以大于1。这使您的光强度范围更广,因此您的照明看起来更加真实。有了它,即使在明亮的光线下,您仍然可以看到细节并减少饱和度。如果您想要广泛的照明或使用光晕效果,这将很有用。如果您瞄准的是低端硬件,则可以禁用它以跳过HDR计算并获得更好的性能。您可以在“摄像机检查器”中为单个摄像机覆盖此设置。
MSAA渲染时,默认情况下对场景中的每个摄像机都使用“ 多样本抗锯齿”。这会柔化几何图形的边缘,因此不会出现锯齿或闪烁。在下拉菜单中,选择每个像素要使用多少个样本:2x,4x或8x。选择的样本越多,对象边缘越平滑。如果您想跳过MSAA计算,或者在2D游戏中不需要它们,请选择禁用。您可以在“摄像机检查器”中为单个摄像机覆盖此设置。
渲染比例 Render Scale此滑块缩放渲染目标分辨率(而不是当前设备的分辨率)。当出于性能原因要以较小的分辨率进行渲染时,或在进行大型渲染以提高质量时,请使用此选项。这只会缩放游戏渲染。UI渲染保留为设备的原始分辨率。
Lighting

这些设置会影响场景中的灯光。

如果禁用其中一些设置,则会从着色器变量中删除相关的关键字。如果您确定某些确定不会在游戏或应用中使用的设置,则可以禁用它们以提高性能并减少构建时间。

属性描述
主灯光 Main Light这些设置会影响场景中的主定向光。您可以通过在Lighting Inspector中将其分配为Sun Source来选择它。如果您不指定太阳源,则LWRP会将“场景”中最亮的定向光视为主光。您可以在“ 像素照明”和“ 无”之间进行选择。如果选择“无”,则即使设置了光源,LWRP也不会渲染主光源。
投射阴影 Cast Shadows选中此框可使主光源在场景中投射阴影。
阴影分辨率 Shadow Resolution这可控制主光源的阴影贴图纹理的大小。高分辨率可提供更清晰,更详细的阴影。如果内存或渲染时间有问题,请尝试使用较低的分辨率。
附加灯 Additional Lights在这里,您可以选择使用其他光源来补充您的主光源。在“ 顶点光源”,“ 像素光源”,“ 两者 ”或“ 无 ”之间选择。
每个对象限制 Per Object Limit此滑块设置了可以影响每个GameObject的附加灯光数量的限制。
投射阴影 Cast Shadows选中此框可使其他灯光在场景中投射阴影。
阴影分辨率 Shadow Resolution这可以控制为附加光投射方向阴影的纹理的大小。这是一个精灵地图集,最多可容纳16个阴影贴图。高分辨率可提供更清晰,更详细的阴影。如果内存或渲染时间有问题,请尝试使用较低的分辨率。
Shadows

这些设置会影响阴影的外观和行为。它们也会影响性能,因此您可以在此处进行调整,以在视觉质量和阴影渲染速度之间取得最佳平衡

属性描述
距离 Distance这可以控制以Unity为单位在相机对象之前投射阴影的距离。在此距离之后,LWRP不会渲染阴影。例如,值100表示​​距离相机100米以上的对象不会投射阴影。在宽阔的开放世界中使用此功能,在此环境中渲染阴影可能会占用大量内存。或在视角距离有限的自上而下游戏中使用它。
级联 Cascades选择阴影的级联数 。大量的级联为您提供了更接近相机的阴影。选项包括:无,两个级联和四个级联。如果遇到性能问题,请尝试减少级联数量。您还可以在设置下方的部分中配置阴影的距离。距离相机越远,阴影变得越不精细。
软阴影 Soft Shadows如果已为Main Light或Additionanalal Light启用了阴影,则可以启用它以在阴影贴图上添加更平滑的滤镜。这样可以使阴影上的边缘平滑。启用后,渲染管线将在台式机平台上执行5x5帐篷过滤器,并在移动设备上执行4 Tap过滤器。禁用后,渲染管道会使用默认硬件过滤对阴影进行一次采样。如果禁用此功能,将获得更快的渲染速度,但阴影边缘更清晰,可能会像素化。
Advanced

本部分允许您微调较少更改的设置,这些设置会影响更深的渲染功能和着色器组合。

属性描述
动态批次 Dynamic Batching启用Dynamic Batching,以使渲染管线自动对共享相同Material的小型动态对象进行批处理。这对于不支持GPU实例化的平台和图形API很有用。如果目标硬件确实支持GPU实例化,请禁用动态批处理。您可以在运行时更改此设置。
三.着色器剥离

Unity从一个着色器源文件编译许多着色器变体。着色器变体的数量取决于您在着色器中包含的关键字数量。在默认着色器中,“轻量级渲染管道”使用一组关键字来设置照明和阴影。LWRP可以排除某些着色器变体,具体取决于LWRP Asset中哪些功能处于活动状态。

当禁用LWRP资产中的某些功能时,管道会从构建中“剥离”相关的着色器变体。剥离着色器可以使构建尺寸更小,构建时间更短。如果您的项目永远不会使用某些功能或关键字,这将很有用。

例如,您可能有一个项目,在此项目中您永远不会将阴影用作定向光。如果不剥离着色器,则具有定向阴影支持的着色器变体将保留在构建中。在这种情况下,您可以取消选中 LWRP资产中的“ 投射阴影”中的主方向灯或其他方向灯。然后,LWRP从构建中剥离这些变体。

有关在Unity中剥离着色器变体的更多信息,请参见Christophe Riccio的此博客文章。

四.功能比较
属性Unity内置渲染管道 Unity Built-in render pipeline轻量级渲染管线 Lightweight Render Pipeline
平台覆盖 Platform Coverage所有所有
渲染路径 Rendering Paths递延多遍转发多遍单程前进
照明衰减 Lighting Attenuation点和点顶点光衰减的单独的预先计算的衰减纹理在范围边界处未达到0强度。基于物理的光衰减。光强度通过平方反比定律降低。
色彩空间 Color Space线性与sRGB光强度sRGB线性与线性光强度sRGB。
实时灯 Realtime Lights“方向”,“聚光灯”和“点”由“质量设置”控制的像素光量前进路径限制为8个像素光。支持多达4个顶点照明。方向灯,点光源和点灯由LWRP资产1主方向灯控制的像素光量,始终按像素着色。最多8个附加光,每个像素或每个顶点可以着色
灯光模式 Light Modes混合烘焙-间接烘焙-阴影蒙版-距离阴影蒙版-减法实时混合烘焙(WIP / ETA Unity 19.1)-间接烘焙-阴影蒙版-减法实时
全球照明 Global Illumination定向,聚光,点和矩形区域光烘焙的光照图(非定向和定向)光照探针实时动态光照图实时光照探针不支持定向,聚光,点和矩形区域光烘焙光照贴图(非定向和定向)光探针实时GI。
着色器库 Shader Library数十种非基于物理的着色器专长统一标准PBS着色器金属工作流程镜面工作流程粗糙度工作流程统一的基于非物理的着色器(Simple Lit)统一的基于物理的着色器(Lit),涵盖了Metallic和Specular工作流程
基于物理的阴影 Physically Based Shading迪士尼漫反射+ Cook Torrance(GGX,Smith,Schlick)镜面朗伯散射+简化Cook Torrance(GGX,简化的KSK和Schlick)镜面Lambertian散射+非微面LUT镜面Lambertian漫反射+简化的Cook Torr(GGX,简化的KSK和Schlick)高光
Light Cookies单色单灯cookie支持主灯。
光探头模式 Light Probes Modes一个内插探针LPPV一个内插探针
反射探头 Reflection Probes最多2个探针之间按对象排序的混合按对象排序不融合
阴影功能 Shadows FeaturesPSSM稳定和紧密贴合·过滤:PCF没有深度夹。Pancaking在顶点完成。PSSM稳定配合过滤:PCF无深度夹。Pancaking在顶点完成。
阴影模式 Shadow Modes光空间屏幕空间光空间屏幕空间
影子投光灯 Shadow Casting Lights定向,点,点多个阴影光脚轮,每遍一次。定向和点光源支持单阴影光投射器作为主光源。
一般 General
相机 Camera按深度值对摄像头进行排序按通用摄像头状态按堆栈管理组处理摄像头之间的深度状态按深度值对摄像机排序不支持堆栈管理RenderTarget比例支持缩放分辨率的游戏渲染用户界面分辨率为原始分辨率
抗锯齿 Anti-AliasingMSAATAAMSAA
管道附加数据 Pipeline Additional Data运动向量没有
后期处理 Post-Processing旧版后处理堆栈新的后处理堆栈新的后处理堆栈FX的子集不支持:-TAA-运动模糊-SSR
调试选项 Debug option显示GBuffer显示各种烘烤照明视图模式
天空照明 Sky lighting程序天空Cubemap / LatLong天空环境照明程序天空立方体贴图环境照明
五.LWRP中的阴影模型

阴影模型定义对象的颜色如何根据表面取向,观察者方向和照明等因素而变化。您选择的阴影模型取决于应用程序的艺术指导和性能预算。轻量级渲染管线为着色器提供以下着色模型:

• Physically Based Shading
• Simple Shading
• Baked Lit Shading

1.基于物理的阴影

基于物理的阴影(PBS)通过基于物理原理计算从表面反射的光量来模拟对象在现实生活中的外观。这使您可以创建逼真的对象和曲面。

该PBS模型遵循两个原则:能量守恒和微观几何。

节能意味着表面反射的光线永远不会超过总入射光线。唯一的例外是当物体发光时。例如,考虑一个霓虹灯。

在微观层面上,表面具有微观几何形状。一些对象具有光滑的微几何形状,这使它们具有镜面般的外观。其他对象具有粗糙的微几何形状,这使它们看起来更暗淡。在LWRP中,您可以模拟对象表面的平滑度。

[img显示粗糙度与平滑度之间的比较]

当光线照射到物体表面时,一部分光线会反射,一部分光线会折射。反射的光称为镜面反射。这取决于观看者的方向以及光线照射表面的方向(也称为入射角)而变化。在此着色模型中,镜面高光的形状使用GGX函数近似。
对于金属物体,表面会吸收并改变光。对于非金属物体(也称为辩证物体),表面反射部分光。

[img显示金属与非金属及其扩散+镜面反射]

这些LWRP着色器使用基于物理的着色:

• Lit
• TerrainLit
• ParticlesLit
注意:这个材质模型不适合低端移动硬件。如果你的目标是这个硬件,使用带有简单阴影模型的着色器。

要阅读更多关于基于物理的渲染,请参阅Joe Wilson在Marmoset上的演练。

2.简单的阴影

这个材质模型适用于风格化的游戏或者运行在不太强大的平台上的游戏。有了这个阴影模型,物体看起来就不那么逼真了。着色器不是节能的。这个阴影模型是基于Blinn-Phong模型。

在这个模型中,物体反射漫射光和镜面光,这两者之间没有相关性。漫反射和反射光的数量取决于材料中选择的特性,因此总的反射光可以超过总的入射光。镜面反射仅随观察者方向而变化。

[img显示漫反射及镜面反射]
这些LWRP着色器使用简单的阴影:
• Simple Lit
• Particles Simple Lit

3.烘焙灯光明暗处理

烘烤照明的阴影模型没有实时照明。物体可以从光图或光探头接受烘烤照明。这增加了一些深度,你的场景在一个小的性能成本。带有这种材质模型的游戏可以在功能较弱的平台上运行。
[img显示未点亮的物体]

这些LWRP着色器使用烘烤照明阴影:

• Baked Lit
• Particles Baked Lit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值