# v0.1.547 — QA-146 cascade: 셰이더 swap 경로 _Cull 누락 일괄 fix + ApplyDoubleSided SSOT

- 버전: v0.1.547
- 날짜: 2026-06-03
- 다운로드: [factory00-windows-x64-v0.1.547.zip](../../downloads/factory00-windows-x64-v0.1.547.zip) (170 MB)
- 캡처: [qa-screenshots/v0.1.547/](../../qa-screenshots/v0.1.547/)

---

## QA-146 cascade 예방 (전방향 양면 정책 SSOT화)
- v0.1.543 QA-146 은 Factory00MaterialGenerator.CreateBaseUnlit 만 _Cull=0(양면). cascade 점검(cycle-critic-review) 결과 SwapToUnlitShader / SwapToLitShader 의 케이스 A(broken→runtime 머티리얼 생성) + 케이스 B(셰이더 swap) 4 경로 모두 _Cull 누락 → Lit↔Unlit 토글 / broken 머티리얼 fallback 시 backface 컬링으로 뒤/왼/아래 면 누락 잔존.
- SSOT 모듈화: `Factory00MaterialGenerator.ApplyDoubleSided(mat)` static 헬퍼 신설. CreateBaseUnlit + SwapToUnlitShader(A/B) + SwapToLitShader(A/B) = 5 경로 공통 호출. 전방향 양면 정책 단일 지점(향후 누락 차단, "문제 발생 코드만 분리" 원칙).
## 영향 파일
- `Assets/Scripts/Game/Factory00MaterialGenerator.cs` — ApplyDoubleSided static SSOT + CreateBaseUnlit 호출 교체
- `Assets/Scripts/Game/Factory00Bootstrap.cs` — SwapToUnlitShader / SwapToLitShader 케이스 A/B 4곳 ApplyDoubleSided 호출
## 검증
- 정적: _Cull set 경로 = ApplyDoubleSided 단일(정의 1 + 호출 5). 임포트 머티리얼 모든 경로(MaterialGenerator / Unlit swap / Lit swap) 양면 일관. Sprites/Default 오버레이는 backface 무관(제외).
- 동적: Lit↔Unlit 토글 후 뒤/왼/아래 뷰 면 누락 0 = Stage 2(뷰 메뉴 마우스). 정상 Unlit 임포트는 v0.1.543 헤드리스 검증 완료(회귀 0).
