# Post-Processing
In URP and HDRP, post-processing is not a stack of components on the camera. It is a **Volume** system: a **Volume Profile** holds **Volume Overrides** (Bloom, Tonemapping, Vignette, and the rest), and volumes in the scene or in project settings blend those overrides by camera position, weight and priority. This series is the Unity 6 look-development and gameplay-feedback path: a global grade, a local "in the cave" look, a scripted low-health pulse, an HDRP comparison, and why most of that stack is too expensive for **Quest 2**.
**Target:** Unity **6000.5+**, URP. HDRP notes compare against [[HDRP Essentials]]. Quest cost targets **Unity 6.3 LTS (6000.3.27f2+)** ([[0.Choosing a Unity Version]], [[6. Quest Performance Budgets]]).
> [!warning] Code not compiled
> Scripts were checked against the Unity 6000.5 Volumes / effect-availability documentation and common URP `UnityEngine.Rendering.Universal` volume types. **They have not been compiled or run in Unity.** Inspector names for individual overrides can differ slightly by URP version; believe the Add Override list in your Editor.
> [!note] Verification status
> **Verified (6000.5 docs, 2026-11-10):** Default Volume at **Project Settings > Graphics > URP > Default Volume Profile**; quality-level volume on the URP asset; adding a volume via **GameObject > Volume** (including **Box Volume**); Volume Profile, Add Override, **Priority**, trigger **Box Collider** with **Is Trigger**; official effect-availability table (which effects exist in URP vs HDRP vs the legacy Post Processing Stack v2). Frame Debugger is the way to *see* the extra passes ([[4. Frame Debugger and GPU]]).
> **Not verified:** every property name on every override in 6000.5; whether your URP build includes extras not in the table (for example a lens-flare override — only use it if it appears in Add Override); exact Quest "safe list" from Meta (Meta warns against heavy full-screen post; they do not publish a per-effect URP whitelist in the page we cite).
> **Do not** add the legacy **Post Processing** package (`com.unity.postprocessing`, PPv2) to a URP or HDRP project to "get the stack back." URP and HDRP already have integrated volumes.
## Parts
| # | Note | Covers |
|---|---|---|
| 1 | [[1. URP Volumes and Profiles]] | Default / quality / scene volumes, blend, priority, local Box Volumes |
| 2 | [[2. URP Effect Catalog]] | Official availability, when to use each override, what lives on the camera instead |
| 3 | [[3. Worked Example - Grade Damage and a Cave]] | A global look, a local cave volume, a low-health overlay volume |
| 4 | [[4. Scripting Volume Overrides]] | `profile` vs `sharedProfile`, `TryGet`, runtime weight |
| 5 | [[5. HDRP Comparison]] | What HDRP adds (exposure, SSR, fog, physical DoF) |
| 6 | [[6. Quest Cost and Quality Tiers]] | Why most effects miss 13.9 ms, a conservative Quest list |
| 7 | [[7. Post-Processing Pitfalls]] | Stacking, HDR, editing shared profiles, leftover PPv2 |
## Design lens (Level Up!)
Camera is the second of Rogers' Three Cs (Level 6 in [[Level Up! (Review)]]). Post-processing is part of that language: a slight vignette can focus attention, a heavy vignette plus chromatic aberration on hit is *feedback* (Level 10 combat feel). It is also how a location gets a mood without a unique shader on every prop. None of it matters if the effect costs a missed frame on the hardware you teach toward ([[Cinemachine 3]] still owns camera *motion* and Impulse shake; volumes own the grade).
## Patterns used (Game Programming Patterns)
- **Type Object** - the Volume Profile is data; many volumes can share one profile.
- **Decorator / Stack** - overrides layer and blend; priority is the order you actually meant.
- **State** - a "hurt" or "underwater" profile is a visual state, not a new camera.
See [[Game Programming Patterns (Review)]].
## Related (existing)
- [[HDRP Essentials]], [[URP Shaders and Shader Graph]], [[Lighting and Baking]]
- [[Cinemachine 3]] / [[4. Impulse Noise and Extensions]] - shake is Impulse, not a volume
- [[4. Frame Debugger and GPU]], [[Profiling and Optimization]], [[6. Quest Performance Budgets]], [[5.Quest 2 Performance and Rendering]]
- [[VFX Graph]], [[Particle Systems and Layered Effects]] - do not substitute a full-screen blur for a hit spark
- [[Timeline Basics]] - a cutscene can swap profiles or animate volume weight
## Sources
- Volumes in URP (6000.5): https://docs.unity.com/en-us/engine/6000.5/manual/post-processing-and-full-screen-effects/urp/volumes-landing-page
- Set up a volume in URP: https://docs.unity.com/en-us/engine/6000.5/manual/post-processing-and-full-screen-effects/urp/volumes-landing-page/set-up-a-volume
- Effect availability reference: https://docs.unity.com/en-us/engine/6000.5/manual/post-processing-and-full-screen-effects/effect-availability-reference
- Render pipeline feature comparison: https://docs.unity.com/en-us/engine/6000.5/manual/render-pipelines/choose-a-render-pipeline/feature-comparison
- Meta Quest performance: https://developers.meta.com/horizon/documentation/unity/unity-perf/
See also (added 2026-11-10): [[Combat Feel and Hit Feedback]] - the hit pipeline a hurt Volume should observe, not replace.