Execution order reference
The High Definition Render Pipeline (HDRP) executes render passes using the following stages:
- Prepass
- Prepare LightLoop data
- Opaque and sky
- Transparent
- Post-processing
- Overlay gizmos
Prepass stage
HDRP executes the prepass stage in the following order:
- Before Rendering - custom pass injection point
- Prepass - depth, normal/smoothness, motion vectors
- PreRenderSky/Cloud
- DBuffer - no emissive decal
- GBuffer
- After Depth and Normal - custom pass injection point
- Depth pyramid
- Camera motion vectors
Prepare Lightloop data stage
- Shadows or cached shadows, or an optional async pass
- Screen space shadows
- Generate MaxZPass
Optional async pass
The optional async pass calculates the following:
- Lights list
- Screen space ambient occlusion (SSAO)
- Contact shadows
- Volume voxelization
- Screen space reflections (SSR)
- Screen space global illumination (SSGI)
Opaque and sky stage
HDRP executes the opaque and sky stage in the following order:
- Deferred lighting
- Forward opaques
- Decal emissive
- Subsurface scattering
- Sky
- After Opaque and Sky - custom pass injection point
- After Opaque and Sky - custom post-processing injection point
Transparents stage
HDRP executes the transparents stage in the following order:
- Clear stencil
- Pre-refraction transparent depth prepass
- Water G-buffer
- Waterline
- Transparent depth prepass
- Volumetric lighting
- Fog
- Clouds
- High Quality Line Rendering
- Screen space reflections (SSR)
- Before PreRefraction - custom pass injection point
- Transparent pre-refraction
- Water lighting
- Color pyramid pre-refraction
- Screen space multiple scattering (SSMS)
- Before Transparent - custom pass injection point
- Transparents
- Low-resolution transparents
- Combine transparents
- Transparent PostPass
- Transparent UI: HDR output
Post-processing stage
HDRP executes the post-processing stage in the following order:
- Color pyramid distortion
- Distortion
- Before Post Process - custom pass injection point
- After Post Process Objects
- Exposure
- Deep learning super sampling (DLSS) upsample - before Post
- Before Temporal anti-aliasing (TAA) - custom post-processing injection point
- TAA or subpixel morphological anti-aliasing (SMAA)
- Before Postprocess - custom post-processing injection point
- Depth of field
- DLSS upsample - After depth of field
- Motion blur
- After Post Process Blurs - custom post-processing injection point
- Panini projection
- Lens Flare (SRP)
- Bloom
- Uber pass - color grading, lens distortion, chromatic effect, vignette, composite
- After Post Process - custom post-processing injection point
- DLSS upsample - After Post
- Final - grain, dithering, composite, fast approximate anti-aliasing (FXAA)
- After Post Process - custom post-processing injection point
Post-processing effect execution order
The post-processing system in HDRP applies post-processing effects in a specific order. The system also combines some effects into the same compute shader stack to minimize the number of passes.
HDRP executes post processing effects in the following order, from top to bottom.
Effect | Execution order |
---|---|
NaN remover | Post-processing pass |
Anti-aliasing - TAA, SMAA | Post-processing pass |
Depth of field | Post-processing pass |
Motion blur | Post-processing pass |
Panini projection | Post-processing pass |
Bloom - pyramid | Post-processing pass |
Color grading - look up table (LUT) baking | Post-processing pass |
Screen space lens flare, written in bloom texture | Post-processing pass |
Lens flare (SRP) | Post-processing pass |
Lens distortion | Compute shader stack |
Chromatic aberration | Compute shader stack |
Apply bloom | Compute shader stack |
Vignette | Compute shader stack |
Apply color grading | Compute shader stack |
Anti-aliasing - FXAA | Final post-processing pass |
Film grain | Final post-processing pass |
8-bit dithering | Final post-processing pass |