VAT_Lit 전용 셰이더 + OutlinePass 제작
ChosenPros
- Includes only the buffers needed for VAT, no impact on CH_Lit
Cons


The existing CH_Lit-based outline could not be used on VAT + GPU Indirect characters.
unity_ObjectToWorld._m31/_m32, which a normal shader won't readPros
Cons
Pros
Cons
Pros
Cons
Why VAT_Lit 전용 셰이더 + OutlinePass 제작: Solved the team color problem by unpacking the color from _m32, passing it through vertex color, and applying it to the outline via the OUTLINE_TINTCOLOR keyword — no dedicated parameter slot needed.
VAT_Lit.shader
├── Outline pass (LightMode = "Outline")
│ └── OutlinePass.hlsl
│ ├── VAT position recovery (_m31 = frame)
│ ├── World-space normal extrusion
│ └── Team color (_m32 unpack → vertex color → OUTLINE_TINTCOLOR)
├── ForwardLit pass → LitForwardPass.hlsl (VAT + CUSTOMINDIRECT)
└── ShadowCaster pass → same VAT handling
URP Renderer Feature — GnomeOutline
Event: BeforeRenderingOpaques
LightMode Tag: "Outline"
Depth Test: Always ← the outline is drawn first and is then overwritten by the character
The combination of BeforeRenderingOpaques + Depth Test: Always — writes the outline to depth first, then the character body (Opaque) renders on top and overwrites the inside, leaving only the silhouette.
Tradeoffs

