45 lines
4.7 KiB
Markdown
45 lines
4.7 KiB
Markdown
# 창문 뒤 반려동물 경험 개선 검증
|
|
|
|
2026-09-22. 비교 기준은 `docs/ref1-option-2.md`의 Ref1 옵션 2다.
|
|
|
|
## 적용 내용
|
|
|
|
- `src/objects/WindowReveal.ts`, `src/main.ts`: 앞쪽 창문 개구부와 사진의 기준 평면 사이를 연결하는 네 면의 안쪽 창틀을 추가했다. 뒤쪽 사각형은 수동 확대·팬과 독립적이며, 사진 구도나 카메라 이동 한계를 보정 수단으로 바꾸지 않는다. 형상은 구도·깊이·리사이즈 변경 시 갱신하며 기존 버퍼를 재사용한다.
|
|
- `src/shaders/mosaic.frag`: 기본 Mosaic의 REGION_ATLAS에서 표본당 고정된 주변 네 지점을 추가로 조사한다. 같은 장면 UV에서 RGB와 앞쪽 깊이 증거를 읽으며, 더 강한 가까운 어두운 특징이 있을 때 대표색 혼합을 최대 0.4로 제한한다. 최종 화면의 원본 눈·코 픽셀 복원은 추가하지 않았다.
|
|
- `index.html`, `src/main.ts`, `src/input/PointerController.ts`, `src/style.css`: 안내를 “화면을 드래그해서 시점을 움직여보세요”로 명시했다. 안내는 첫 유효 드래그까지 유지하고 새 미디어에서 다시 표시한다. 같은 미디어에서 이미 드래그했다면 AI 깊이 완료가 안내를 다시 띄우지 않는다. 드래그 중 커서도 구분한다.
|
|
|
|
기존 Grid 13, 굴곡 +1, 광택 0.30, 색면·굴절 강도 1, Camera Offset 기본 0.50/최대 0.90, 70ms history 및 DPR 상한 1.5를 유지한다. 사진은 기존의 단일 깊이 변위 표면이다.
|
|
|
|
## 실행 검증
|
|
|
|
`npm.cmd run build` 통과. TypeScript와 Vite 빌드가 완료됐으며 메인 청크 524.46 kB에 대한 기존 500 kB 초과 경고는 남아 있다.
|
|
|
|
다음 여섯 검사 각각 통과:
|
|
|
|
```text
|
|
node --experimental-strip-types scripts/test-camera-history.mjs
|
|
node --experimental-strip-types scripts/test-region-axis-split.mjs
|
|
node --experimental-strip-types scripts/test-mosaic-depth-distance.mjs
|
|
node --experimental-strip-types scripts/test-mosaic-continuity.mjs
|
|
node --experimental-strip-types scripts/test-region-atlas-dark-sampling.mjs
|
|
node --experimental-strip-types scripts/test-window-reveal-coverage.mjs
|
|
```
|
|
|
|
창틀 검사는 실제 Three.js 메시와 Raycaster를 사용한다. 종횡비 0.7/1.6, 깊이 강도 0/0.25/0.4, 정면 및 ±0.5/±0.9의 가로·세로·대각선 조합 17개에서 개구부 광선 49개씩, 총 4,998개를 확인했다. 기존 네 개의 얕은 창틀 박스와 사진만으로는 146개가 빗나갔고 새 안쪽 면과 사진으로는 모두 교차했다. 형상·위치 버퍼 재사용과 형상별 한 번의 dispose 이벤트도 확인했다. 이는 정해진 형상 표본의 검사이며 모든 실제 사진·렌더링 결과를 보장하지 않는다.
|
|
|
|
어두운 특징 검사는 production GLSL의 연결·표본 수·문턱값을 확인하고, 복제한 JavaScript 계산으로 합성 좁은 어두운 특징과 먼 표면·무효 표면·균일 색의 결과를 검사한다. 합성 검사는 GLSL을 실행하는 GPU 검사가 아니며 사진별 시각 품질 개선의 증명으로 해석하지 않는다.
|
|
|
|
## 브라우저에서 확인한 범위
|
|
|
|
- dog1의 자동 AI 상대 깊이 생성 완료, 정면 Final에서 큰 사각 색면과 두 눈·코 표현을 확인했다.
|
|
- AI 작업 완료 후에도 안내가 유지됐고, 실제 드래그 후 안내 opacity가 0으로 바뀌었다.
|
|
- No Glass의 정면과 우측 이동 화면, 같은 이동 상태의 Final을 확인했다. Camera Offset 0.50 및 0.90 설정에서 안쪽 창틀 면과 사진이 접하는 결과를 확인했다. 이번 성공한 드래그의 정규화 이동은 약 +0.8이므로 ±1 끝점 전체의 브라우저 검증으로 기록하지 않는다.
|
|
- 다른 기존 샘플로 변경한 뒤 안내가 다시 표시되고 “수작업 테스트 Depth · AI 추정 아님”이 유지됨을 확인했다.
|
|
- 조회한 콘솔 로그에 실행 오류는 없었다. 기존 셰이더 X3595 경고(가변 반복문 안 gradient 연산)는 남아 있다.
|
|
|
|
일부 추가 브라우저 드래그는 자동 승인 검토에서 보안 상태를 결정하지 못해 차단됐다. 전체 좌우·상하·대각선 끝점은 위 형상 검사에서 검증했으며 전체 실화면 검증은 완료하지 못했다. 모바일 FPS, 연속 영상의 깜빡임 계측, 실제 변위 정점의 유리 간격 측정도 이번 검증에 포함하지 않는다.
|
|
|
|
## 비교 자료와 한계
|
|
|
|
수정 전 Mosaic 셰이더는 `baseline-mosaic.frag`에 보존되어 있다. UI·창틀의 수정 전 스냅샷은 없으며, 이번 검증에서 수정 전후의 동일 프레임 GPU 비교는 실행하지 않았다. 작은 눈·코가 모든 사진과 시점에서 보존된다고 보장하지 않는다. 숨겨진 옆면이나 배경을 복원하는 기능은 추가하지 않았다.
|