# URP Render Pipeline (project-scoped) URP 14.0.11-specific render-pipeline work. Translates HDRP-flavoured requests into URP-safe operations. ## When to use Load before touching URP assets, Volume profiles, reflection probes, color space, fog, skybox, or any HDRP-flavoured request. ## URP assets inventory (do not move) - `Assets/Settings/URP-Balanced.asset` + `URP-Balanced-Renderer.asset` - `Assets/Settings/URP-HighFidelity.asset` + `URP-HighFidelity-Renderer.asset` - `Assets/Settings/URP-Performant.asset` + `URP-Performant-Renderer.asset` - `Assets/Settings/SampleSceneProfile.asset` — Volume profile (post-processing overrides live here) - `Assets/Settings/TexturesSettings.asset` Confirm which URP asset is current before changing it: ``` mcp__UnityMCP__manage_graphics(action="pipeline_get_info") ``` ## Translating HDRP concepts to URP | HDRP concept | URP equivalent | Notes | |---|---|---| | HDRP Volume with Bloom/Vignette/DoF/etc. | URP Volume with same override names | Use `volume_set_effect` | | `Exposure` in EV (physical) | `ColorAdjustments.postExposure` (stops, ±1.0) | Fix lighting if range > 1.0 | | Sky and Fog Volume | `RenderSettings.fog` + URP setup | URP fog is limited; document limitation | | HDRP ReflectionProbe every-frame | URP ReflectionProbe `Refresh Mode = Via Scripting` | Document when re-bake is needed | | PlanarReflectionProbe | Not available in URP 14; use ReflectionProbe or render feature | Propose render feature with approval | | Ray-traced reflections / path tracer | **Not available in URP** | Refuse; suggest baked probe + roughness modulation | ## Volume profile: how to add / edit overrides 1. Locate the active profile: `mcp__UnityMCP__manage_graphics(action="volume_get_info")`. 2. Add missing override: `mcp__UnityMCP__manage_graphics(action="volume_add_effect", profile_path="Assets/Settings/SampleSceneProfile.asset", effect="Bloom")`. 3. Set parameters: `mcp__UnityMCP__manage_graphics(action="volume_set_effect", effect="Bloom", parameters={"threshold": 1.0, "intensity": 0.25, "scatter": 0.7})`. URP 14 override names: `Bloom`, `Vignette`, `ChromaticAberration`, `DepthOfField`, `MotionBlur`, `PaniniProjection`, `LensDistortion`, `FilmGrain`, `Tonemapping`, `ColorAdjustments`, `LiftGammaGain`, `ChannelMixer`, `ShadowsMidtonesHighlights`, `SplitToning`, `WhiteBalance`, `HDROverrides`, `ScreenSpaceAmbientOcclusion`, `ScreenSpaceShadows`. ## Laparoscope-friendly starting profile | Override | Starting values | |---|---| | `Bloom` | intensity 0.1–0.3, threshold ~1.0, scatter 0.7 | | `Vignette` | intensity 0.2–0.4, smoothness 0.3–0.5 | | `DepthOfField` | mode Gaussian, gaussianStart 0.05–0.1, gaussianEnd 0.3–0.5, gaussianMaxRadius 1.0–2.0 | | `Tonemapping` | Neutral or ACES | | `ColorAdjustments` | postExposure ~0, contrast +0.05 to +0.15 | | `LensDistortion` | intensity 0.05–0.15 | | `ChromaticAberration` | intensity 0.05–0.1 | These are starting values. Verify by screenshot. ## Lighting bake workflow ``` mcp__UnityMCP__manage_graphics(action="bake_start") # poll until done: mcp__UnityMCP__manage_graphics(action="bake_status") ``` After baking: `read_console` for lightmap errors, then screenshot. ## Hard limits - Do not swap the active URP asset without explicit approval. - Do not add a renderer feature without a bounded change statement and explicit approval. - `Vignette.intensity` ≤ 0.5 (above this, looks like a damaged lens, not a scope). - `LensDistortion.intensity` ≤ 0.2.