On this page, you will find information about upgrading from an older version of the Universal Render PipelineA series of operations that take the contents of a Scene, and displays them on a screen. Unity lets you choose from pre-built render pipelines, or write your own. More info
See in Glossary (URP) to the current version.
To build a Project for a console, you need to install an additional package for each platform you want to support.
In previous versions of URP, if post-processingA process that improves product visuals by applying filters and effects before the image appears on screen. You can use post-processing effects to simulate physical camera and film properties, for example Bloom and Depth of Field. More info post processing, postprocessing, postprocess
See in Glossary was enabled it would cause the pipeline to always require depth. We have improved the post-processing integration to only require depth from the pipeline when Depth of FieldA post-processing effect that simulates the focus properties of a camera lens. More info
See in Glossary, Motion Blur or SMAA effects are enabled. This improves performance in many cases.
Because CamerasA component which creates an image of a particular viewpoint in your scene. The output is either drawn to the screen or captured as a texture. More info
See in Glossary that use post-processing no longer require depth by default, you must now manually indicate that Cameras require depth if you are using it for other effects, such as soft particlesParticles that create semi-transparent effects like smoke, fog or fire. Soft particles fade out as they approach an opaque object, to prevent intersections with the geometry. More info
See in Glossary.
To make all Cameras require depth, enable the the Depth Texture
option in the Pipeline Asset. To make an individual Camera require depth, set Depth Texture
option to On
in the Camera Inspector.
In previous versions of URP, if shadow cascades were enabled for the main Light, shadows would be resolved in a screen space pass. The pipeline now always resolves shadows while rendering opaque or transparent objects. This allows for consistency and solved many issues regarding shadows.
If have custom HLSL shadersA program that runs on the GPU. More info
See in Glossary and sample _ScreenSpaceShadowmapTexture
texture, you must upgrade them to sample shadows by using the GetMainLight
function instead.
For example:
float4 shadowCoord = TransformWorldToShadowCoord(positionWorldSpace);
Light mainLight = GetMainLight(inputData.shadowCoord);
// now you can use shadow to apply realtime occlusion
half shadow = mainLight.shadowAttenuation;
You must also define the following in your .shader file to make sure your custom shader can receive shadows correctly:
#pragma multi_compile _ _MAIN_LIGHT_SHADOWS
#pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE
Transparent objects can now receive shadows when using shadow cascades. You can also optionally disable shadow receiving for transparent to improve performance. To do so, disable Transparent Receive Shadows
in the Forward Renderer asset.