# Ref1 깊이와 어두운 색을 함께 사용하는 보호 후속 변경: 아래 픽셀별 보호는 눈·코를 따로 붙인 듯 보인다는 사용자 평가로 대체됐다. 깊이·어두움은 유지하되 사각 색면의 대표색 선택에 사용한다. 최신 기준은 `docs/ref1-dark-color-planes.md`이다. 2026-09-14 사용자는 원본 depth의 가장 흰 영역과 RGB의 검정 영역이 겹칠 때 보호하도록 제안했다. 목적은 눈·코 보호를 유지하면서 먼 잔디의 작은 어두운 무늬가 보호되는 현상을 줄이는 것이다. 이는 앞선 사진 전체의 어두운 특징 보호보다 우선한다. ## 적용 기준 - 기존 RGB 보호 조건: 원본 밝기 < 0.20, 단순화 후보가 원본보다 0.16 초과 밝아지는 경우. - 원본 상대 depth(0=뒤, 1=앞)의 `smoothstep(0.80, 0.95, depth)`를 보호 결과에만 적용한다. 0.80 이하는 보호하지 않고 0.95 이상은 기존 보호를 전부 적용한다. - 안전 own palette → 허용 가능한 최암색 → 해당 원본 픽셀의 기존 보호 순서를 유지한다. - 굴절 RGB의 finalSceneUv에서 장면 깊이를 역투영하고, 사진 메시의 역행렬로 원본 UV를 구해 원본 depth를 읽는다. 카메라의 비선형 depth-buffer 값을 흰색 정도로 사용하지 않는다. - 색면 전체 강도는 거리와 독립이다. SSE 분할, 배경 색면 강화, 시점 반응과 70ms 보간을 유지한다. ## 범위와 한계 눈·코 인식 마스크는 아니다. 가까운 잔디나 다른 검정 물체도 보호될 수 있고, AI depth가 눈을 뒤로 추정하면 보호가 줄 수 있다. 깊이 없는 0값 평면 texture에는 선택적 보호가 적용되지 않는다. 원본 depth가 있으면 Depth Scale 0에서도 보호 범위를 판정할 수 있다. 임계값은 현재 dog1 비교를 위한 초기값이며 모든 사진의 최적값을 의미하지 않는다. ## 구현 및 검증 완료 수정: `src/main.ts`에 현재 원본 depth uniform 공유와 매 프레임 사진 메시 역행렬 갱신, `src/shaders/mosaic.frag`에 원본 UV 복원 및 보호 가중치 적용. `scripts/test-region-axis-split.mjs`, `scripts/test-mosaic-depth-distance.mjs`에서 보호 분기와 원본 UV 변환 검증을 갱신했다. dog1 / AI 상대 depth / 색면 1 / Grid 13 / 굴곡 1 / Distortion 1 / Camera Offset 0.5에서 정면과 +120px 이동을 확인했다. 이전 전체 어두운 특징 보호 때 잔디에 남던 작은 검은 무늬가 감소하고 눈·코 형태와 큰 배경 색면이 유지됐다. 눈 대비는 기존 전체 보호보다 약한 부분이 있다. Depth Scale 0에서도 눈·코와 잔디의 선택이 유지됐고, Depth Scale 0.25 / 수동 확대 1.3 / 가로 팬 0.3에서도 보호 위치가 얼굴을 따라가는 것을 확인했다. 검사 후 확대 1 / 팬 0 / 정면으로 복원했다. axis-split, depth-distance(21 역투영 및 카메라·확대/팬·Depth Scale 조합 12개), camera-history 테스트와 `npm run build` 통과. 기존 번들 크기 경고는 남는다. 한 사진의 수동 시각 검증이며 연속 프레임 깜빡임과 모바일 FPS는 계측하지 않았다.