Files
behind_glass/docs/visual-qa.md
T
2026-10-06 12:16:46 +09:00

48 lines
7.0 KiB
Markdown

# 시각 QA — 2026-09-11
사용자 요청: 결과가 마음에 들지 않는 원인 QA. 소스 수정 없이 실제 브라우저 비교와 Astra 정적 분석 수행.
## 결과: 시각 목표 미달
1. P1 얼굴 정보 손실: mosaic.frag footprint .35~.50, compact .03~.10. 강도 1에서는 각각 2~2.9배, 10~33배 국소 확대. compact blur .07cell로 거의 단색처럼 보이기 쉬움. 브라우저에서 광택0/굴절.5로 낮추면 눈·코 정보가 더 남는 것을 확인. 단순 광택 추가로 해결되지 않음.
2. P1 일관성: grid는 사진이 아닌 화면 vUv 기준. 데스크톱 stage1000x720과 모바일 stage375x506에서 동일 Grid28의 사진 가로 셀 수가 약9와16으로 달라짐. 사진 contain과 stage 크기를 이용한 코드 계산 및 시각 비교. 셀은 정사각형이나 사진에 대한 밀도는 달라짐.
3. P2 광택: 흰색 mix 기반 broad highlight가 어두운 차 실내에서 회색 밝은 막처럼 보임. 미세 법선 차이만으로는 면별 유리 반사 인상이 부족. 공통 조명 방향은 반영되지만 사진 정보 손실을 가리기만 하는 경우 있음.
4. P2 경계/좌표: glass cell은 screen UV 고정, 조명 gh는 world 좌표. 중립 photo rect에 마스크/clamp하지만 depth silhouette은 실제 카메라에 따라 이동. 카메라 offset .6에서 좌측 드래그 후 사진 외곽 기울기와 고정 격자 경계 불일치 확인. 완전한 3D 유리판이 아닌 postprocess 절충.
5. 구도 차이: 참고 이미지의 얼굴은 화면/유리판을 크게 차지함. 샘플은 차 배경과 전신을 포함하므로 기본 설정에서 얼굴을 구성하는 셀 수가 작음. 비교 시 동일한 얼굴 점유율을 맞추는 확대·크롭 옵션이 도움될 수 있음. 원본 변경은 불필요.
## 수정 우선순위 제안
유리 영역 기준으로 grid 밀도 고정 → 얼굴 세부를 남기는 셀별 샘플 폭/이동/축별 배율 조정 → 유리 패널/사진 경계 정책 일치 → 광택 형태와 강도 재조정. Depth/RenderTarget 유지. 리라이팅 불필요.
검증 완료는 두 viewport 동일 얼굴 셀 밀도, 정지 화면 눈/코 식별, 광택ON에서 회색 막 억제, 큰 drag 경계 일관성으로 판단. 이번 브라우저 error 로그는 비어 있었으나 실행 오류 없음과 시각 목표 달성은 별개다. 기존 QA는 기능 통과에 치우쳤음.
## 추가 QA: 셀 내부 굴곡
현재 법선에는 셀 전체 기울기 (random-.5)*.10과 셀 내부 변화 local*.025가 모두 있다. 굴곡이 아예 없는 것은 아니지만 중심→가장자리의 축별 법선 변화는 약0.72도로 약하고, 셀 전체 기울기 최대 약2.86도와 강한 샘플 확대에 가려진다. projected refraction의 ±.4cell clamp가 포화된 축에서는 국소 굴곡 변화가 잘릴 수도 있다(코드상 조건, 포화 빈도 계측은 미수행).
Astra 제안: 사각 셀 중앙이 얕게 부풀고 가장자리로 내려오는 pillow형 높이 h=A(1-qx²)(1-qy²), q=2local의 기울기에서 법선을 유도. 셀별 높이/축 비율은 작은 고정 편차만 둔다. 같은 법선을 굴절과 광택에 사용. 원형 ring 왜곡/검은 테두리는 복원하지 않는다. 사진/유리 기준 셀 좌표와 샘플 폭 문제를 함께 정리해야 한다.
수정 시 완료 기준: 광택0에서도 셀 내부 사진 윤곽의 완만한 휘어짐이 보이고, 광택ON에서는 같은 곡면을 따라 반사가 움직인다. 셀 중심·변·모서리의 반응 차이가 있으면서 눈/코 정보가 유지된다. Distortion0 원본 복원. 실제 메시 두께/실루엣까지 필요한 경우는 별도 범위이며 MVP에서는 셰이더 곡면 근사 가능. 이번 추가 QA는 코드 검토만 수행했고 소스 수정은 하지 않음.
## 2차 곡면 QA
2026-09-11. 사용자 요청에 따라 소스 수정 없이 재검토.
- 실제 Glass Only, 조명 X/Y=0에서 같은 사각 쿠션 패턴의 반복이 뚜렷함. 기본 최종 화면에서도 어두운 차량 영역이 퀼팅처럼 보임. 모든 셀 동일한 대칭 높이함수+높이 ±12%만 바꾸는 구조가 주요 원인.
- 실제 Final 곡률 .65→.30 비교에서 얼굴 윤곽은 자연스러워지지만 표면 패턴의 반복 자체는 남음. 단순 강도 조절만으로는 해결되지 않음.
- 광택은 단일 smooth spec lobe와 흰색 혼합. 창/긴 광원의 반사 형태가 없어 유리 표면이라는 단서가 약함. 광택 증폭보다 약한 비대칭 곡면+분명한 넓은 광원 형태의 반사 근사가 후보. 실제 환경맵이나 리라이팅 서버 도입은 필요 없음.
- 후속 최소 방향: 셀 중앙을 비교적 평탄하게 하고 곡률 중심/가로세로 곡률을 고정된 작은 편차로 변경. 변형한 높이함수의 법선을 굴절/광택에 공유. 무작위 UV 노이즈를 따로 덧씌우지 않음. 같은 구도 A/B로 반복감과 눈/코 식별을 함께 판단.
- 조건부 정적 우려: contain으로 world pane 크기가 바뀌는 이미지/viewport 조합에서는 고정 유리-배경 거리와 cellWorld 정규화 때문에 셀 단위 굴절 강도가 달라질 수 있음. 현재 portrait 샘플과 일반 desktop/mobile 조합은 world scale=1.7로 같으므로 이 문제를 재현했다고 주장하지 않음. 가로 사진/매우 좁은 stage의 추가 회귀 항목.
이 단계에서는 코드나 사용자 미리보기 설정을 수정하지 않음. 임시 QA 탭만 사용.
## 최신 첨부 레퍼런스 비교 판단
사용자 최신 이미지1(목재 프레임/작은 색면),2(큰 얼굴/확대된 눈코 조각),3(현재 차량 사진)를 직접 비교. 이미지3의 실제 슬라이더 값은 확인하지 않았으므로 현재 기본값과 같다고 가정하지 않음.
우선 차이는 광택보다 셀 안의 이미지 구성. 현재는 원사진의 선이 이어지다가 셀 경계에서 꺾여 잘라 붙인 듯 보임. 참고는 넓게 늘어난 색면과 눈코의 또렷한 확대 조각이 공존. 모든 원본 디테일을 보존하려던 이전 QA 기준을 수정: 반려동물 식별 특징을 유지하면서 셀별 정보량 차이를 허용해야 함. 과거 전체셀 극단 축소(.03~.10)로 복귀하지 않음.
우선순위: (1) 확대/위치조절로 얼굴 대 셀 크기를 맞춘 비교 구도 제공, 원본 자산은 보존. (2) 이미지2를 첫 시각 목표로 삼아 일부 셀에서 축별 확대/압축 편차를 늘림. 이미지1은 색면 중심의 별도 프리셋 목표. (3) 화면3의 톱니형 외곽을 유리판 경계와 분리하여 안정적인 pane 경계 확보; 원본 overscan/클리핑 검토, 장식 프레임만으로 원인을 숨기지 않음. (4) 곡면과 반사는 보조 요소로 유지, 추가 광택 강화/리라이팅 도입 보류.
완료 기준: 동일 얼굴 점유율에서 눈/코가 다른 배율의 조각으로 보임; 얼굴을 알아볼 수 있음; 단색 pixelation도 단순 이미지 타일 절단도 아님; 유리 외곽 안정. 이번에는 소스 변경 없음.