Universal Render Pipeline Asset

请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com

URP版本:8.2.0

源网页

要使用URP asset,需要创建一个URP asset,并在【Graphic settings】界面将其赋值使用。URP asset控制图形渲染的功能,设置图形渲染的质量等级。URP asset本身是一个scriptable object。它继承自RenderPipelineAsset类。在一个工程中可以使用多个URP asset,并且可以在它们之间切换使用,比如有个URP asset是启用了阴影,另一个URP asset关闭了阴影。

URP有以下几大类的控制选项,如下:

  • General
  • Quality
  • Lighting
  • Shadows
  • Post-processing
  • Advanced

下面的图显示了这几个控制选项的UI:

General

这是一些用于控制管道渲染框架的核心部分常规设置

属性名 描述 对应的编辑器变量名称
Depth Texture 当在一个摄像机对象的inspector界面上启用此项时,URP将会在shader中创建一个深度纹理_CameraDepthTexture。缺省地URP将把这个深度纹理交给你场景中的所有的摄像机去使用之。 m_RequireDepthTextureProp
Opaque Texture 当在一个摄像机对象的inspector界面上启用此项时,URP将会在shader中创建一个不透明的深度纹理_CameraOpaqueTexture。缺省地,URP将这个深度纹理交给你场景中的所有的摄像机使用。这个深度纹理起的作用,就很类似于built-in render pipeline中的GrabPass。在URP渲染任意的透明状网格(transparent mesh)时,该纹理将会提供一个当前场景的一个快照(snapshot) m_RequireOpaqueTextureProp
Opaque Downsampling 设置Opaque Texture属性的降采样方式,有None(不采样)2倍线性过滤(2x Bilinear),、4倍线性过滤(4x Bilinear),、4倍盒状过滤(4x Bilinear),其中4倍盒状过滤产生一种轻柔羽化的效果 m_OpaqueDownsamplingProp
Terrain Holes 禁用此项的话,在build包的时候,URP将会移出所有的Terrain hole shader变体,将会减少build包的时间

Quality

Qulity项相关管的属性控制URP的渲染质量级别。通过控制这些属性,可以在低端硬件上提高性能,在高端硬件上提高图形质量。如果要为不同的硬件设置不同的设置,则可以在多个Universal Render Pipeline资源中配置这些设置,然后根据需要在这些设置中切换。

属性名 描述 对应的编辑器变量名称
HDR 启用此选项后,默认情况下,场景中的每个摄像机都可以在HDR中进行渲染。如果定位的是低端硬件,则可以禁用此选项以跳过HDR计算并获得更好的性能。当在一个摄像机对象的inspector界面上,为这个摄像机对象关闭使用HDR。 m_HDR
MSAA 当开启此项,在渲染时,默认情况下对场景中的每个摄像机都使用多重采样反走样(Multi Sample Anti-aliasing)。这样可以使几何图形的边缘变柔和,因此不会出现锯齿或闪烁。在下拉菜单中,选择每个像素要使用多少个样本:2x,4x或8x。选择的样本越多,对象边缘越平滑。如果您想跳过MSAA计算,或者在2D游戏中不需要它们,请选择Disable。当在一个摄像机对象的inspector界面上,为这个摄像机对象关闭使用MSAA。 m_MSAA
Render Scale 此滑块缩放渲染目标分辨率(render target resolution)(而不是当前设备的分辨率)。如果出于性能原因要以较小的分辨率进行渲染,或者要放大渲染以提高质量,请使用此选项。这只会缩放游戏渲染。UI呈现保留为设备的原始分辨率。 m_RenderScale

##Lighting

Lighting相关的属性这些设置会影响场景中的灯光。如果禁用其中一些设置,将会从Shader代码中删除相关的keyword。如果您确定某些keyword肯定不会在程序中使用上,则可以将其禁用以提高性能并减少构建时间

属性名 描述 对应的编辑器变量名称
Main Light 这些设置会影响场景中的directional light。 您可以通过在Lighting的Inspector面板中将其分配为Sun Source来选择它。 如果您不指定太阳源,则URP会将场景中最亮的directional light光视为主光。您可以在Pixel LightingNone这两个选项中进行选择。 如果您选择None,则即使您设置了光源,URP也不会用主光源参与渲染计算 m_MainLightRenderingModeProp
Cast Shadows 当勾选此项时,Main Light将会在场景产生影子 m_MainLightShadowsSupportedProp
Shadow Resolution 这可以控制主光源的阴影贴图纹理的大小。高分辨率可提供更清晰,更详细的阴影。 如果内存或渲染时间有问题,请尝试使用较低的分辨率。 m_MainLightShadowmapResolutionProp
Additional Lights 在这里,您可以选择使用其他光源来补充您的main light。在Per VertexPer PixelDisabled之间进行选择 m_AdditionalLightsRenderingModeProp
Per Object Limit 每一个game object中,可以被多少个additional light所照亮。此滑块用来设置这个个数 m_AdditionalLightsPerObjectLimitProp
Cast Shadows 勾选此选项,可以控制additional lights是否能在场景中投下阴影。 m_AdditionalLightShadowsSupportedProp
Shadow Resolution 附加光投射有向阴影的所使用的阴影贴图纹理的大小。这是一个纹理集,最多可容纳16个阴影贴图。高分辨率可提供更清晰,更详细的阴影。 如果内存或渲染时间有问题,请尝试使用较低的分辨率。 m_AdditionalLightShadowmapResolutionProp

Shadows

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

属性名 描述 对应的编辑器变量名称
Distance 这个属性将指定一个值,当某个game object离摄像机的距离大于此值时,URP将不会渲染这个object的阴影 m_ShadowDistanceProp
Cascades 选择阴影的 层叠(cascade) 数。大量的层叠为您提供了更接近相机的阴影。选项包括:NoneTwoFour如果您遇到性能问题,请尝试减少级联数量。还可以在设置下方的部分中配置阴影的距离。距离相机越远,阴影变得越不细腻。 m_ShadowCascadesProp m_ShadowCascade2SplitProp m_ShadowCascade4SplitProp
Soft Shadows 如果为main lightadditional light启用了阴影,则可以启用这个Soft Shadows选项,以在阴影贴图上添加更平滑的过滤效果。这样可以使阴影上的边缘平滑。如果禁用此功能,则渲染速度会更快,但阴影边缘会更锐利(可能会像素化)。 m_SoftShadowsSupportedProp

Post-processing

本部分允许您 微调(fine-tune) 全局后处理设置。

属性名 描述 对应的编辑器变量名称
Grading Mode 选择用于项目的颜色分级(color grading,通常是指对最终的画面进行颜色和亮度的改变或矫正)的模式。分为两种:•高动态范围(HDR):类似于电影制作工作流程,此模式最适用于高精度分级。 Unity在色调映射(tone mapping)之前应用颜色分级。•低动态范围:此模式遵循更经典的工作流程。 在色调映射之后,Unity会应用有限范围的颜色分级。 m_ColorGradingMode
LUT Size URP会使用 查找纹理(look-up texture,LUT) 来进行color grading。查找纹理可分为 内部(internal)外部(external) 本属性项就是用来指定LUT的的大小。 较大的大小值可提供更高的精度,但可能会降低性能。增加内存的使用。在开始color grading之前就需要确定好尺寸。本选项的默认值为32,这是一个能在速度和质量之间的取得良好平衡的值。 m_ColorGradingLutSize

Advanced

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

属性名 描述 对应的编辑器变量名称
SRP Batcher 选中此框以启用SRP Batcher。如果您有许多使用不同的材质球,但是它们使用了相同的着色器,这将很有用。SRP Batcher是一个内部循环(inner loop),可在不影响GPU性能的情况下加快CPU渲染速度。使用SRP Batcher时,它将在内部循环中替换SRP的渲染相关的代码。 m_SRPBatcher
Dynamic Batching 启用动态批处理,以使render pipeline自动批处理共享同一材质的小型动态对象。 这对于不支持GPU instancing的平台和图形API很有用。如果目标硬件确实支持GPU instancing,请禁用动态批处理。您可以在运行时更改此设置。 m_SupportsDynamicBatching
Mixed Lighting 启用混合灯光(Mixed Lighting),启用本选项时,会告诉pipeline在创建游戏时,包含上mixed lighting相关的shader variants。 m_MixedLightingSupportedProp
Debug Level 设置render pipeline生成的调试信息的等级,分为以下几种: Disabled: 不启用 Profiling: 让pipeline提供详细的调试信息,在FrameDebugger中可以看到。 m_DebugLevelProp
Shader Variant Log Level 当Unity在build完工程的时候,可以显示shader stripping和shader variants的相关信息。本属性就是控制这些信息的显示。属性值有三种:Disabled: Unity不显示任何的信息 Only Universal: 只显示和URP shader相关的信息 All: Unity显示所有的shader的信息 m_ShaderVariantLogLevel