# WL-814j 프로브 2026-09-12 18:34:01 (edit mode · Play 0) playMode=True · colorSpace=Linear ── A. 전제 — SO · 셰이더 · 렌더러 피처 PASS A1 SO — Resources/WL/WLPaletteSettings · enabled True · levels 6 · dither 0.6 PASS A2 셰이더 — WL/Look/PaletteDither · isSupported True · passCount 1 PASS A3 렌더러 에셋 — Assets/Settings/URP-Balanced-Renderer.asset 피처 3개(순서대로): [0] SSAO [ScreenSpaceAmbientOcclusion] active=True [1] PixelOutlineSetup [PixelOutlineSetupFeature] active=False [2] WLPaletteDither [PaletteDitherFeature] active=False PASS A4 팔레트 피처 1건만 — WLPaletteDither 1개 PASS A5 피처 찾기·켜기 — isActive=True PASS A6 머티리얼 생성 — WL/Look/PaletteDither ── B. 🔴 대상 카메라에서만 패스 삽입 (뷰·UI·프리뷰 0) PASS B1 대상 카메라 = 패스 1건 — PassesAdded 1 · 대상 '__WL814j_Target' · 이벤트 AfterRenderingPostProcessing PASS B2 다른 카메라 = 패스 0 — PassesAdded 0 · skip=대상 아님 PASS B3 프리뷰 카메라 = 패스 0 — PassesAdded 0 · skip=cameraType Preview PASS B4 대상 없음 = 패스 0 — 리그조립 False · skip=대상 카메라 없음 렌더러 피처 배열 순서 = SSAO → PixelOutlineSetup → WLPaletteDither 팔레트 패스 이벤트 = AfterRenderingPostProcessing(600) · SO afterPostProcessing=True 814c PixelOutlineSetup 이벤트 = AfterRenderingOpaques(300) — 빈 패스로 깊이·노멀·색 텍스처만 켠다. → 외곽선 자체는 Critter Toon 머티리얼 안에서 **불투명 지오메트리와 함께** 그려지므로 항상 이 패스보다 앞이다 = 외곽선까지 양자화된다. PASS B5 팔레트가 외곽선보다 뒤 — 600 > 300 ── C. 🔴 Bayer 디더 격자가 RT 픽셀과 1:1 (단색 화면 · 4×4 주기 실측) PASS C1 디더 0 → 단색 1종 — 고유 색 1종 · rgb(153,102,153) PASS C2 디더 4×4 → 색 2종 이상 — 고유 색 4종 PASS C3 x 주기 4 정확 — p(x,y) != p(x+4,y) 인 픽셀 0개 / 31440 PASS C4 y 주기 4 정확 — p(x,y) != p(x,y+4) 인 픽셀 0개 / 31860 PASS C5 주기 2 아님(= 진짜 4×4) — x 15960 · y 16065 개 불일치 PASS C6 8×8 x 주기 8 정확 — 불일치 0개 PASS C7 8×8 y 주기 8 정확 — 불일치 0개 PASS C8g 8×8 는 주기 4 아님 — 주기 4 불일치 2910개 → 디더 점 1개 = 저해상도 RT 1픽셀(135×240). 화면(1080×1920)에서는 Point 확대로 8×8 화면픽셀 블록이 된다. ── D. 채널 레벨별 색 수 (그라데이션 화면 · levels^3 상한 실측) | levels | dither | 고유 색 수 | 상한 levels^3 | |---|---|---|---| | (패스 없음) | — | 1828 | — | | 4 | 0.6 | 9 | 64 | PASS D1 levels 4 상한 준수 — 9 ≤ 64 | 6 | 0.6 | 13 | 216 | PASS D2 levels 6 상한 준수 — 13 ≤ 216 | 8 | 0.6 | 22 | 512 | PASS D3 levels 8 상한 준수 — 22 ≤ 512 PASS D4 색 수 감소 — 패스 없음 1828종 → levels 6 13종 ── E. GC — 프레임당 할당 0 PASS E PaletteDither.Tick ×200k — mono Δ0 B · profiler Δ0 B · gen0 244→244 PASS E PaletteDither.Want ×200k — mono Δ0 B · profiler Δ0 B · gen0 246→246 PASS E 피처 값 푸시(SO→머티리얼) ×200k — mono Δ0 B · profiler Δ0 B · gen0 248→248 PASS E9 대조군 16 MB 감지 — Δ16781312 B = 계기 감도 확인 ── F. C8 — SO off / 피처 off 면 저해상도 RT 가 원본과 픽셀 단위로 같다 PASS F1 SO off → 패스 0 — PassesAdded 0 · skip=SO off PASS F2 SO off → 픽셀 동일 — 해시 -5621533481151061762 vs -5621533481151061762 PASS F3 피처 off → AddRenderPasses 호출 0 — added 0 · skipped 0(URP 가 비활성 피처를 아예 안 부른다) PASS F4 피처 off → 픽셀 동일 — 해시 -5621533481151061762 vs -5621533481151061762 PASS F5 대조군 — 켜면 달라진다 — 해시 1679459652402882898 != -5621533481151061762 ── G. 도트 모드 전환 3회 왕복 — 예외 0 · 대상 카메라가 리그 게임 카메라로 따라온다 PASS G1 Camera.main 존재 — Camera.main = Main Camera · 프로브가 넣은 것 = __WL814j_MainCamera PASS G2 인게임 판정 — InLobby=False | 왕복 | 모드 | 리그조립 | 대상 카메라 | RT | 팔레트 on | 피처 active | |---|---|---|---|---|---|---| | 1 | 1 | O | PixelCamera | 135×240 | True | True | PASS G1a 도트 모드 → on — on=True 피처=True PASS G1b 대상 = 리그 게임 카메라 — PixelCamera | 1 | 0 | - | (없음) | — | False | False | PASS G1c 기본 모드 → off — on=False 피처=False | 2 | 1 | O | PixelCamera | 135×240 | True | True | PASS G2a 도트 모드 → on — on=True 피처=True PASS G2b 대상 = 리그 게임 카메라 — PixelCamera | 2 | 0 | - | (없음) | — | False | False | PASS G2c 기본 모드 → off — on=False 피처=False | 3 | 1 | O | PixelCamera | 135×240 | True | True | PASS G3a 도트 모드 → on — on=True 피처=True PASS G3b 대상 = 리그 게임 카메라 — PixelCamera | 3 | 0 | - | (없음) | — | False | False | PASS G3c 기본 모드 → off — on=False 피처=False PASS G9 예외 0 — 0건 [Palette] on=False 피처활성=False 대상=(없음) · 모드 0 리그 False · levels 6 dither 0.6 (4x4) · 패스 추가 1 건너뜀 0 · on 3 off 3 허브이벤트 6 PASS G10 로비 강등 → off — AppliedMode 0 · on False ── Z. 정리 남은 카메라 8개 · 리그조립 False · 피처 active False AssetDatabase.SaveAssets 호출 0 · 씬 저장 0 RESULT PASS · 45/45 · FAIL 0