Overview
Tested with: Unity 2022.3 LTS / Unity 6 Scope: Built-in Render Pipeline and URP (HDRP is not covered in this article)
"The scene looks too flat..." "I want to create a cinematic atmosphere..." "I need richer visuals..."
In game development, you often face these kinds of visual challenges. Post processing is a technique that applies effects (filters) to the rendered result of what the camera sees. Just like filters in photo apps or effects in image editing software, you can adjust the overall look of the screen with various effects including Bloom, Color Grading, and Depth of Field.
Two Implementation Approaches
In Unity, the implementation approach differs depending on the render pipeline you are using.
Post Processing Stack v2 (for Built-in RP)
- Install from the Package Manager
- Add a Post-Process Layer component to the camera
- Manage with a Post-Process Volume component
- Create a profile and add effects
Volume Override (for URP/HDRP)
- Available by default in URP
- Uses Volume components
- Add effects to a Volume Profile
- More integrated workflow
Major Effects
Bloom
The most commonly used effect, Bloom emphasizes light and creates a glow appearance.
Post Processing Stack v2 (Built-in RP)
| Parameter | Description |
|---|---|
| Intensity | Strength of the light |
| Threshold | Brightness threshold for applying the effect |
| Diffusion | Light spread (1-10) |
| Color | Bloom tint color |
| Fast Mode | Lower quality but faster |
URP Volume
| Parameter | Description |
|---|---|
| Intensity | Strength of the light |
| Threshold | Brightness threshold for applying the effect |
| Scatter | Light spread (0-1) |
| Tint | Bloom tint color |
| High Quality Filtering | Enables high-quality filtering |
Note: Parameter names differ between Post Processing Stack v2 and URP. "Diffusion" and "Scatter", "Color" and "Tint" are functionally equivalent.
Bloom Adjustment Guidelines
| Use Case | Intensity | Threshold | Scatter(URP) / Diffusion(v2) |
|---|---|---|---|
| Natural glow | 0.2-0.5 | 0.9-1.0 | 0.5-0.6 / 5-6 |
| Standard look | 0.5-1.0 | 0.8-0.9 | 0.6-0.7 / 6-7 |
| Emphasized look | 1.0-2.0 | 0.5-0.8 | 0.7-0.8 / 7-8 |
| Extreme effect | 2.0+ | 0.5 or below | 0.8-1.0 / 8-10 |
Optimizing Bloom for URP
To optimize Bloom for mobile:
- Downscale: Check to process at a lower resolution (OFF by default)
- Max Iterations: Lower values reduce processing cost (default 6, recommended 3-4 for mobile)
- High Quality Filtering: Turn OFF for lighter performance
Color Grading
A color correction feature that adjusts the overall color tone of the screen. It is one of the most important effects for creating a cinematic look.
Key Parameters
| Parameter | Description | Adjustment Example |
|---|---|---|
| Tonemapping | HDR to LDR conversion method | ACES recommended (film industry standard) |
| Post Exposure | Overall brightness | Adjust within -1 to 1 range |
| Contrast | Contrast | 10-30 for a tighter image |
| Saturation | Saturation | -20 for serious mood, +20 for vibrant |
| Temperature | Color temperature | Negative for cool, positive for warm |
Lift / Gamma / Gain
- Lift: Adjusts shadow color tones (color of dark areas)
- Gamma: Adjusts midtone color (overall atmosphere)
- Gain: Adjusts highlight color tones (color of bright areas)
Tonemapping recommendation: ACES is the standard tonemapping used in the film industry, producing a natural and cinematic look. It is particularly effective for HDR content.
Ambient Occlusion (AO)
Adds shadows to corners and edges of objects, providing realistic spatial depth. However, it is performance-heavy, so it is primarily suited for desktop/console platforms.
Depth of Field
Simulates camera focus. By focusing at a specific distance and blurring everything else, you can achieve a cinematic look.
URP Mode Selection
| Mode | Quality | Cost | Use Case |
|---|---|---|---|
| Gaussian | Standard | Light | Mobile, performance-focused |
| Bokeh | High quality | Heavy | PC/Console, cinematic look |
Bokeh mode: Produces high-quality bokeh by simulating camera lens aperture shapes, but is too heavy for mobile due to its processing cost.
Vignette
An effect that darkens the screen edges, used for retro aesthetics or blending the screen together.
Other Effects
- Auto Exposure - Simulates dark/light adaptation
- Chromatic Aberration - Simulates lens color fringing
- Grain - Adds noise to the screen for a film-like look
- Motion Blur - Adds blur to movement for a sense of speed
- Lens Distortion - Creates a fisheye lens-like distortion
Implementation Steps for Built-in RP
1. Installing the Package
- Open Window > Package Manager
- Search for "Post Processing" and install it
2. Camera Setup
- Select the Main Camera
- Add the "Post-Process Layer" component
- Set the Layer (e.g., Default)
3. Creating the Volume
- Create an empty GameObject
- Add the "Post-Process Volume" component
- Turn on Is Global
- Create a new Profile
4. Adding Effects
- Click Add Effect... on the Profile
- Select the desired effect
- Adjust the parameters of each effect
Implementation Steps for URP
1. Creating a Global Volume
- Right-click in the Hierarchy
- Select Volume > Global Volume
- A GameObject is created
2. Configuring the Volume Profile
- Click "New" on the Volume component's "Profile"
- A Volume Profile is created
3. Adding Effects
- Click "Add Override"
- Select the desired effect
- Adjust the parameters of each effect
4. Verify Camera Settings
Make sure Post Processing is enabled on the camera.
Changes in URP 14+ (Unity 2023.1+): Starting with URP 14, Post Processing is enabled by default on cameras. The settings UI has also changed, and you toggle Post Processing on/off from the Render Type settings screen.
Area-Specific Effects with Local Volume
While Global Volume affects the entire scene, Local Volume lets you apply effects only to specific areas.
Configuration
- Create an empty GameObject
- Add a Volume component
- Turn Is Global off
- Add a Collider (such as a Box Collider)
- Configure the Volume Profile and Blend Distance
Use Cases
- Cave area: Darken the scene and strengthen Vignette
- Magical forest: Increase Bloom for a fantasy atmosphere
- Danger zone: Add a red tint with Color Grading
Blend Distance: Sets how many meters from the Volume boundary the effect gradually applies. Values of 2-5 are recommended to avoid abrupt transitions.
Recommended Combinations
Here are preset examples that beginners can try right away.
Cinematic
- Color Grading: Tonemapping=ACES, Contrast=20, Saturation=-10
- Vignette: Intensity=0.3
- Bloom: Intensity=0.3, Threshold=0.9
Horror
- Color Grading: Saturation=-30, Temperature=-10 (cool tones)
- Grain: Intensity=0.3
- Vignette: Intensity=0.5
Fantasy
- Bloom: Intensity=1.0, Threshold=0.7
- Color Grading: Saturation=20, Temperature=10 (warm tones)
Retro Game
- Color Grading: Contrast=40, Saturation=-20
- Chromatic Aberration: Intensity=0.2
- Grain: Intensity=0.4
Performance Impact
High-Cost Effects
| Effect | Cost Level | Notes |
|---|---|---|
| Ambient Occlusion | Very High | Post processing effect |
| Motion Blur | High | Post processing effect |
| Screen Space Reflection | High | Rendering feature (implemented as Renderer Feature in URP) |
| Depth of Field | Medium-High | Post processing effect |
Note: Screen Space Reflection is technically not a post processing effect but part of the rendering pipeline. In URP, it is added as a Renderer Feature.
Optimization Tips
- Only enable necessary properties - Turn off unused parameters
- Use Fast Mode - Available for effects like Bloom
- Use lightweight effects for mobile - Choose lighter effects like Vignette
- Lower the resolution - Leverage downsampling
- Minimize effect combinations - Only use what you need
VR Considerations
The following effects are not recommended in VR as they can cause motion sickness.
- Depth of Field - Mismatch between visual and actual focus
- Motion Blur - Inconsistency with head movement
- Chromatic Aberration - Strong settings cause eye fatigue
- Lens Distortion - Mismatch with actual field of view
- Grain - Strong settings cause discomfort
- Vignette - Strong settings create a sense of restricted vision
Common Issues and Solutions
Issue 1: Effects Not Showing
- Check if Post Processing is enabled on the camera
- Verify Volume settings are correct
- Check that Layer settings match (Built-in RP)
Issue 2: Performance Drops
- Disable unnecessary effects
- Enable Fast Mode
- Lower the resolution
- Use only lightweight effects for mobile
Issue 3: Overexposed (Washed Out)
- Lower Bloom Intensity
- Adjust Post-exposure in Color Grading
- Review HDR color settings
Issue 4: Too Dark / Too Bright
- Adjust with Color Grading
- Use Auto Exposure
- Review lighting settings
Summary
Post processing is a powerful technique for enhancing the overall visual quality of your screen.
- Bloom - Glow effects, the most commonly used
- Color Grading - Color correction, creates a cinematic atmosphere
- Depth of Field - Focus effects, highlights the subject of interest
- Vignette - Darkens screen edges, retro aesthetic
Choose the right implementation approach for your render pipeline, and use effects effectively while keeping performance in mind.