The following table lists the render passes the Deferred rendering pathThe technique that a render pipeline uses to render graphics. Choosing a different rendering path affects how lighting and shading are calculated. Some rendering paths are more suited to different platforms and hardware than others. More info
See in Glossary uses.
Render event | Render pass that occurs after the render event | Description |
---|---|---|
BeforeRendering | - | - |
BeforeRenderingShadows | - | - |
AfterRenderingShadows | - | - |
BeforeRenderingPrePasses | DepthPrepass, or DepthPrepass and DepthNormalPrepass. | Render depth and normal textures in a prepass, for materials that Unity renders in a Forward pass. |
AfterRenderingPrePasses | - | - |
BeforeRenderingGbuffer | GBufferPass | Render the G-Buffer, then copy the G-Buffer depth texture. |
AfterRenderingGbuffer | SSAO | Calculate the screen space ambient occlusionA method to approximate how much ambient light (light not coming from a specific direction) can hit a point on a surface. See in Glossary (SSAO) texture. Unity calculates this here only if you enable SSAO, and disable After Opaque. |
BeforeRenderingDeferredLights | Deferred Pass | Deferred rendering. Unity uses the SSAO texture during this render pass, if it was created. |
AfterRenderingDeferredLights | - | - |
BeforeRenderingOpaques | - | Render opaque forward-only materials. |
AfterRenderingOpaques | - | Calculate and blend the screen space ambient occlusion (SSAO) texture. Unity calculates this here only if you enable SSAO, and enable After Opaque. |
BeforeRenderingSkybox | - | - |
AfterRenderingSkybox | - | - |
BeforeRenderingTransparents | - | - |
AfterRenderingTransparents | - | - |
BeforeRenderingPostProcessing | - | - |
AfterRenderingPostProcessing | - | - |
AfterRendering | - | - |
For the full list of render events, and injection points for custom render passes, refer to Injection points reference for URP.
The following table lists the files that contain code related to the Deferred rendering path, located in the com.unity.render-pipelines.universal
folder.
File path | Description |
---|---|
Runtime\DeferredLights.cs |
The main class that handles the Deferred rendering path. |
Runtime\Passes\GBufferPass.cs |
ScriptableRenderPass for the G-Buffer pass. |
Runtime\Passes\DeferredPass.cs |
ScriptableRenderPass for the deferred shadingA rendering path in the Built-in Render Pipeline that places no limit on the number of Lights that can affect a GameObject. All Lights are evaluated per-pixel, which means that they all interact correctly with normal maps and so on. Additionally, all Lights can have cookies and shadows. More infoSee in Glossary pass. |
Shaders\Utils\Deferred.hlsl |
Utility functions for deferred shading. |
Shaders\Utils\StencilDeferred.shader |
ShaderA program that runs on the GPU. More info See in Glossary asset for deferred shading. |
Shaders\Utils\UnityGBuffer.hlsl |
Utility functions for storing and loading material properties from the G-Buffer. |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.