scenario-unity-rendering-lighting

Installation
SKILL.md

Rendering and lighting (lighter / graphics TA)

Expert lighting in Unity is a measured loop: fix exposure, light to anchors, bake, grade, judging every stage from the same camera bookmarks with numbers (gray cards, clipping, bake memory, native passes) before taste. This skill drives URP 17.3 on Unity 6.3 from code; everything here ran in Unity 6000.3.21f1 on an Apple M5 Max (Metal) on 2026-09-24. If a sibling skill named here is missing from your available skills, ask the user to install it (npx skills add scenario-labs/skills --skill <name>); unattended, proceed from tool schemas and flag the gap.

REQUIRED BACKGROUND: scenario-unity-expert (channels, ut_run, AgentCapture, AgentProfile, ut_review, 6.3 traps).

Stance (the expert delta)

  1. Exposure first, lights second (Pierre Yves Donzallaz, yqCHiZrgKzs [00:20:21]). URP 6.3 has Fixed exposure only: one Post Exposure per zone, lights solved from an 18% gray card (the unaided sun 2.0 read +1.03 EV with no tonemapper; the solved 0.98 read +0.16 EV under Neutral).
  2. Expect gray after baking; fix it in post under the tonemapper you chose early (Kyle Banks, 1agSNKuAfTM [00:04:58]; PYD [01:01:29]): Neutral for lookdev; contrast, saturation, Shadows Midtones Highlights pushed too far, then dialed back. ACES darkens (K3-wPnhmDi4 [00:54:50]; measured -1.4 EV): re-solve exposure under it.
  3. Shadow distance before resolution (6.3 Manual; HCXCmHgV7Sk [00:15:32]): 1024 over 10 m beats 2048 over 40 m. Max Distance = farthest dynamic shadow the player sees; last cascade ends at the last caster. Stylized room with soft shadows: 1024 was the sweet spot, higher looked "too crisp" (URP e-book).
  4. The asset that renders is the Quality level's, and so is its post (URPS [00:03:14], [00:30:06]). Report before editing. Unity 6 stacks the Graphics default profile, the active URP asset's profile, then scene volumes, per parameter: tier-dependent post (bloom cost, DoF, APV leak reduction) goes on each tier's asset profile, never in scene volumes, which win on every tier (measured). The template's two assets share one profile, and its Neutral tonemapper.
  5. Bake what does not move; split settings by cost (Ciro Continisio, hMnetI4-dNY [00:35:51]): texel density, max size, directional mode and shadowmask cost memory, samples and bounces only bake time. Small props keep Contribute GI with Receive GI = Light Probes ([00:48:30]). A shadowmask texel holds 4 shadowed Mixed lights (6.3 Manual). Lightmaps sample 3 to 4 times cheaper than APV but take 3 times the memory (APV24 IpVuIZYFRg4 frame 00:23:43): phones keep lightmaps for static geometry.
  6. The sky is the default interior light (PYD22 DlxuvvYZO4Q [00:08:17]; U25 [00:45:56]). Without baked GI and a local box probe, interiors and glossy surfaces take the sky (a smoothness-0.3 table read gray-blue until one probe existed).
  7. Stylized is a production choice, not a filter (Kyle Banks [00:22:04] to [00:23:06]): one palette texture, triplanar world noise, one shared shader (7 samples over 3 textures, fine on Switch); Simple Lit on the low tier (URP e-book); Subtractive as the cheapest mixed mode (TRB). A toon shader must still sample lightmaps, shadowmask and probes or the bake vanishes; 6.3 builds custom lighting on the URP Unlit target (deltas section 5).
  8. On tilers, bandwidth is the budget; prove it (6.3 Manual; U25 [00:30:26]; Ryan Keeble, bl0vKZkzNOs [00:14:30]): Forward, no depth or opaque texture unless needed (copy After Transparents), no soft shadows, MSAA 2x, 1 to 2 ms per extra full-screen pass on a Quest 2-class GPU. PassAudit reads the Render Graph's native passes: a depth copy After Opaques or the Opaque Texture splits the opaque, skybox and transparent pass (measured).

Establish first

Installs
163
GitHub Stars
1.0K
First Seen
Sep 26, 2026