# urp-postprocessing

Walks an agent through URP post-processing with the Volume framework: bloom, tonemapping, color adjustments, depth of field, vignette. Useful when an effect never shows up.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 5800 installs · ★ 1149
- Author: Unity-Technologies
- License: LicenseRef-Unknown · policy=link-only · description only; the file stays with the author
- Source: https://github.com/Unity-Technologies/skills/tree/HEAD/skills/urp-postprocessing/SKILL.md
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/skills/urp-postprocessing

## What it does

The skill runs pre-flight checks before touching any effect. URP has to be the active pipeline, HDR has to be on for tonemapping, the camera needs `renderPostProcessing` set to true, the Volume's GameObject layer must sit inside the camera's `volumeLayerMask`, and the profile needs at least one override with `overrideState = true`. A missing Main Camera or an inactive URP stops the run.

Effects go onto a `VolumeProfile` as `VolumeComponent` overrides through `profile.Add<T>()`. Every property is a `VolumeParameter`, so setting a value without flipping `overrideState` leaves the Volume system ignoring it. For individual effects the skill loads `references/effect-reference.md`, which lists the properties for bloom, tonemapping, depth of field, vignette and the rest.

All of this runs as C# inside a live Unity Editor through the `eval` command. That command needs a connected Editor and the `com.unity.pipeline` package, which the separate `unity-cli` skill sets up — install it first. `eval` compiles a statement block rather than a file, so `using` directives are rejected and types must be written out in full (`UnityEngine.Rendering.Volume`, not `Volume`). If `eval` is absent from the command catalog, there is nothing to run. The project also needs `com.unity.render-pipelines.universal` at version 14.0.0 or higher.

## Requirements
- Works with: Unity

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add Unity-Technologies/skills --skill urp-postprocessing -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/urp-postprocessing/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/urp-postprocessing/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add Unity-Technologies/skills --skill urp-postprocessing -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/urp-postprocessing/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add Unity-Technologies/skills --skill urp-postprocessing -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/urp-postprocessing/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install Unity-Technologies/skills urp-postprocessing
```

2. **Manually: put the files in place**
- File: `.github/skills/urp-postprocessing/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add Unity-Technologies/skills --skill urp-postprocessing -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/Unity-Technologies/skills --path skills/urp-postprocessing
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/urp-postprocessing/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add Unity-Technologies/skills --skill urp-postprocessing -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/Unity-Technologies/skills/tree/HEAD/skills/urp-postprocessing/SKILL.md

## When to use it
- turn on post-processing on a camera and get the Volume layer mask right
- add bloom or tonemapping to a profile with overrideState set
- track down an effect that exists in the profile but never renders
- confirm HDR on the URP Asset before configuring tonemapping
- find the Volume a camera is skipping because of its layer

## Example prompts
- Check the URP post-processing setup in this project and report what is wrong
- Add bloom and tonemapping to the global Volume profile
- Why is the vignette missing from the frame? Check the camera and the volume layer mask

## Similar
- [orbit-card](https://affpapa.org/en/nevibecode/skills/orbit-card.md) — skill · 10000 installs
- [cad](https://affpapa.org/en/nevibecode/skills/cad.md) — skill · 14000 installs
- [step-parts](https://affpapa.org/en/nevibecode/skills/step-parts.md) — skill · 11200 installs
- [sdf](https://affpapa.org/en/nevibecode/skills/sdf.md) — skill · 10500 installs
- [urdf](https://affpapa.org/en/nevibecode/skills/urdf.md) — skill · 10500 installs
- [hatch-pet](https://affpapa.org/en/nevibecode/skills/hatch-pet.md) — skill · 3300 installs

From the same set: [unity-technologies/skills](https://affpapa.org/en/nevibecode/by/unity-technologies/skills.md) — 31 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
