VAT_Lit 전용 셰이더 + OutlinePass 제작
ChosenPros
- VAT에 필요한 버퍼만 포함, CH_Lit 무영향
Cons


기존 CH_Lit 기반 아웃라인은 VAT + GPU Indirect 캐릭터에 사용할 수 없었다.
unity_ObjectToWorld._m31/_m32에 패킹되어 있어 일반 셰이더에서는 읽지 않음Pros
Cons
Pros
Cons
Pros
Cons
Why VAT_Lit 전용 셰이더 + OutlinePass 제작: 팀 컬러 문제는 _m32에서 언팩한 컬러를 버텍스 컬러로 넘기고 OUTLINE_TINTCOLOR 키워드로 아웃라인에 적용 — 전용 파라미터 슬롯 없이 해결.
VAT_Lit.shader
├── Outline pass (LightMode = "Outline")
│ └── OutlinePass.hlsl
│ ├── VAT 포지션 복원 (_m31 = 프레임)
│ ├── 월드스페이스 노멀 확장
│ └── 팀 컬러 (_m32 언팩 → vertex color → OUTLINE_TINTCOLOR)
├── ForwardLit pass → LitForwardPass.hlsl (VAT + CUSTOMINDIRECT)
└── ShadowCaster pass → VAT 동일 적용
URP Renderer Feature — GnomeOutline
Event: BeforeRenderingOpaques
LightMode Tag: "Outline"
Depth Test: Always ← 아웃라인을 먼저 쓰고 이후 캐릭터가 덮어씌움
BeforeRenderingOpaques + Depth Test: Always 조합 — 아웃라인을 먼저 depth에 기록하고, 이후 캐릭터 본체(Opaque)가 렌더되면서 안쪽을 덮어씌워 외곽선만 남음.
Tradeoffs
Unity Frame Debugger 정상적으로 분리된 패스에서 작동
