Overview
In URP, lighting is a workflow made from several connected tools: lights, shadows, the Lighting window, volumes/post-processing, and Renderer Features. Students often mix these up because they all affect the final frame, but they do different jobs. If you want to bake global illumination, you work through the Lighting window. If you want a camera-space effect such as Screen Space Ambient Occlusion (SSAO), you add a Renderer Feature to the URP renderer. Unity’s recent URP material presents these as parts of one pipeline rather than isolated features (Unity, Introduction to URP for Advanced Creators, see source-unity-urp-advanced-creators).
Setup
Basic URP lighting workflow:
- Use a project that already has a URP asset and renderer data asset.
- Place your main lights in the scene and decide which are real-time, baked, or mixed.
- Open the Lighting window to configure baking and global illumination settings.
- Add Volumes for scene-wide post-processing.
- Add specific Renderer Features only when you need them, such as SSAO or decals.
Usage
If I bake global illumination, do I use the Lighting window or Shader Graph?
Use the Lighting window.
Shader Graph controls how a material responds to lighting and surface data. It is not the main tool for baking scene-wide global illumination. Baking lives in Unity’s lighting workflow: lightmaps, probes, and the Lighting window settings. Unity’s URP documentation and e-books repeatedly tie baked and mixed lighting to that window-based workflow (Unity, Introduction to URP for Advanced Creators, see source-unity-urp-advanced-creators).
What SSAO is actually for
SSAO stands for Screen Space Ambient Occlusion. It helps objects feel more grounded by darkening creases, corners, and contact areas in screen space.
That means:
- Yes, it is a good effect when you want more depth and grounding.
- No, it is not the thing that makes lights “react realistically to camera position”.
SSAO is best understood as a depth and contact-shadow aid. Unity’s URP VFX material is explicit that SSAO is implemented as a Renderer Feature in URP, independent from the post-processing stack (Unity, Create Popular Shaders and Visual Effects with URP, see source-unity-urp-shaders-vfx).
How to enable SSAO
- Select the Universal Renderer Data asset.
- In Renderer Features, choose Add Renderer Feature.
- Add Screen Space Ambient Occlusion.
- Tune radius, falloff, and sample quality in the inspector.
Dynamic lights vs baked lights
- Use real-time lights when the light source or its interaction must change during play.
- Use baked lighting for static environment contribution when you want cheaper high-quality lighting.
- Use mixed approaches when moving objects need to sit inside a mostly static lit environment.
Unity’s current performance guidance still treats baked lighting as a major optimisation tool for static content, especially on constrained platforms (Unity, Optimize Performance for Mobile, XR, and Web Games, see source-unity-performance-mobile-xr-web).
Gotchas
- Do not expect Shader Graph to replace the Lighting window. They solve different problems.
- SSAO adds depth, but it also adds cost. Profile it on the target device.
- Renderer Features are powerful, but each one adds complexity. Start with the smallest set that answers the visual problem.
- If lighting looks flat, the issue might be material values, shadow settings, or scene composition rather than “missing SSAO”.
Related
unity-urp-overview · shader-graph-overview · unity-profiler · cinemachine-overview · unity-lod-groups