Universal Render Pipeline
请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com
1 URP的常见问题回答 URP和HDRP(High Definition Render Pipeline)不能混用。 可以从内建render pipeline转到URP。可以用升级器(upgrade)升级内建shader到URP shader。如果自定义的shader的话,需要手动去upgrade。 不能在运行期换pipeline asset。 URP和HDRP之间不能换用。 通过Package Manager获取URP的package 在URP Asset的【Player Setting】界面上可以找到Dynamic Batching的checkbox 选中材质球时,在Inspector面板中,找到Render Face选项,选择Both选项,即可开启Double Sided Global Illumination。 URP适用于各种平台,包括PC和mobile 在Built-in RP和URP功能对照表中,标识为Not Supported的功能,表示没有且不会在后续版本中实现。 如果在build URP工程时很慢,检查以下shader stripping是否设置对,要strip掉可以strip掉的shader。 缺省地,URP是在linear space中工作,可以在Player Setting中将其设置为在gamma space中工作。 通过创建ScriptableRendererFeature脚本,使用scriptable render pass可以扩展URP的功能。 2 URP Asset 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:
2.1 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包的时间 – 2.