02 버전 — 정교한 이미지 제작
1. 정의
공간과 카메라를 먼저 수학적·3차원적으로 고정한 뒤 생성형 모델의 역할을 인물·재질·조명·광학·색 표현으로 제한하는 방식이다. 목적은 “사진처럼 보이는 이미지”뿐 아니라 같은 공간을 여러 시점에서도 유지할 수 있는 이미지 시스템을 만드는 것이다.
2. 제작 계층
Scene master
├─ Room geometry
├─ Furniture geometry
├─ Camera rig
├─ Lighting rig
├─ Subject/pose layer
├─ Material/texture layer
└─ Camera/color branches
공간·가구·카메라는 재사용 자산이고, 인물·조명·색은 장면별 또는 버전별 변경 자산이다.
3. 전체 프로세스
Stage 01 — 장면 설계
- 이미지 목적, 피사체, 화면비, 시선 흐름 결정
- 필요한 파생 앵글과 렌즈 목록을 먼저 작성
- 출력: composition map
Stage 02 — 카메라 캘리브레이션
- 센서 크기, 초점거리, 해상도, 카메라 높이, yaw·pitch·roll 설정
- 카메라 내부행렬
K와 외부행렬R|t계산 - 출력: 카메라 JSON, 수평선, 소실점
Stage 03 — 공간·가구 프록시
- 방, 창, 문, 테이블, 소파, 책장, 미디어 콘솔을 실제 단위 박스로 모델링
- 같은 세계축에 평행한 선이 같은 소실점으로 수렴하는지 검사
- 출력: wireframe, depth, normal, object ID
Stage 04 — 인물·오브젝트 배치
- 골반·등·발·손·책의 접촉 관계 설정
- 인물과 가구의 실제 크기 범위 확인
- 가림 관계와 그림자 접점을 기록
Stage 05 — 조명
- 광원의 방향·크기·색온도·세기 설정
- 직사광과 반사광 분리
- 기하를 변경하지 않고 조명 패스만 검증
Stage 06 — 사진화
- 3D 프록시를 제어 입력으로 사용
- 생성형 모델은 재질·인물·식물·생활 소품을 사진화
- 직선 구조와 카메라 투시는 변경 금지
Stage 07 — 카메라·렌즈 분기
- 동일 마스터에서 24/35/50mm 또는 Sony/Canon 분기
- 기하는 카메라 행렬에서 계산하고 브랜드 차이는 색·미세 대비·하이라이트 처리로 제한
Stage 08 — 색보정·LUT
- 화이트밸런스, 노출, tone curve, gamut 변환 적용
- LUT는 픽셀 위치나 윤곽을 바꾸지 않음
Stage 09 — 최종 검증
- 투시, 수직, 접지, 형태, 조명, 심도, 색, 아티팩트 검사
- 자동 통과와 사람 승인을 모두 기록
4. 카메라 계산 예시
이번 35mm 프록시는 다음 조건으로 계산했다.
| 항목 | 값 |
|---|---|
| 이미지 | 1536×1024px |
| 센서 | 36×24mm |
| 초점거리 | 35mm |
| 수평 초점거리 | 1493.33px |
| 카메라 높이 | 1.50m |
| 수평선 | y=439.83px |
| X축 소실점 | (3971.74, 439.83) |
| Y축 소실점 | (70.30, 439.83) |
| 소실점 y 차이 | 0.00px |
분석적 프록시는 2점 투시 조건을 수학적으로 통과한다. 그러나 사진화 출력은 생성 과정에서 선이 이동할 수 있으므로 다시 측정해야 한다.
5. 검증 게이트
| 게이트 | 기준 | 실패 시 복귀 |
|---|---|---|
| VP 군집 | 이미지 폭의 3% 이하 | Stage 02–03 |
| 두 VP의 수평선 차 | 이미지 높이의 1% 이하 | Stage 02–03 |
| 수직 편차 | 설정값 대비 1° 이하 | Stage 02 |
| 기하 드리프트 | 대각선의 0.5% 이하 | Stage 06 |
| 접지 | 모든 지지점이 바닥·좌판과 연결 | Stage 04 |
| 조명 일치 | 광원과 투영 그림자 방향 일치 | Stage 05 |
| 카메라 분기 일치 | 분기 전후 구조 좌표 유지 | Stage 07 |
| 색 안전 | 심각한 shadow/highlight clipping 없음 | Stage 08 |
6. 토큰과 제작시간 최적화
초기 구축
- 01보다 카메라 명세·좌표·검증 문서가 많아 텍스트 작업량이 증가한다.
- 프록시 제작과 검증 때문에 첫 장은 느리다.
- 대신 오류를 외관 제작 전에 발견해 고품질 재생성 낭비를 막는다.
재사용 단계
- 카메라 위치만 변경하면 새 수평선·소실점·구도를 자동 계산할 수 있다.
- 가구 모델을 다시 만들지 않고 다른 앵글을 렌더링한다.
- 공통 렌더에서 Sony·Canon·LUT만 분기한다.
- 동일 공간의 파생 수량이 늘어날수록 장당 평균비용이 감소한다.
권장 해상도 전략
| 단계 | 권장 출력 | 이유 |
|---|---|---|
| 구성·프록시 | 768px 수준 | 빠른 오류 발견 |
| 투시 검증 | 최종 화면비, 저해상도 | 좌표 비율 유지 |
| 인물·재질 후보 | 1024–1536px | 형태 평가 가능 |
| 최종 승인 | 목표 납품 해상도 | 불필요한 고해상도 호출 방지 |
7. 다중 앵글 제작
3D 마스터가 승인되면 다음 값만 바꾼다.
- 카메라 위치
(x, y, z) - yaw·pitch·roll
- 초점거리와 센서 크기
- 초점거리와 조리개
- 시간대와 조명 rig
변경 후 공간·가구의 세계좌표는 유지된다. 따라서 정면, 좌측, 우측, 낮은 시점, 높은 시점이 모두 같은 방으로 연결된다.
8. Sony·Canon 분리 원칙
두 버전은 다음을 공유한다.
- 카메라 위치와 35mm 투영
- 장면 구조와 인물 포즈
- 조명 방향과 노출 기준
- 초점 위치와 심도 범위
차이는 다음 단계에만 둔다.
- color response의 시각적 해석
- microcontrast와 sharpening
- highlight shoulder
- 적색·녹색·청색 분리 경향
- 주변부와 보케의 절제된 표현
실제 제조사 RAW 데이터와 렌즈 프로파일이 없으면 “Sony/Canon 물리 복제”가 아니라 “Sony/Canon 시각적 해석”으로 기록한다.
9. 실패 방지 규칙
- 분석적 프록시가 통과하기 전에 사진화를 시작하지 않는다.
- 사진화 결과가 프록시 모서리를 벗어나면 외관이 좋아도 승인하지 않는다.
- 생성형 모델이 직선 구조를 다시 그린 경우 해당 구조를 결정론적 렌더·합성으로 복원한다.
- 카메라 앵글 변경 시 이전 사진을 변형하지 않고 3D 마스터에서 새로 투영한다.
- 최종 색보정은 기하 검증 이후에만 수행한다.
10. 현재 구현 상태
- 35mm 분석적 프록시: 제작 완료, 소실점 y 차이
0px - 프록시 카메라 데이터: JSON 저장
- 사진화 후보: 제작 가능하지만 최종 기하 재검증 필요
- 완전한 Blender/CAD 장면: 로컬 Blender 미설치로 미구축
관련 파일:
06_이미지하네스/build_35mm_proxy.py06_이미지하네스/projects/IMG_20260922_0001/02_perspective/analytic-35mm-proxy-v01.png06_이미지하네스/projects/IMG_20260922_0001/02_perspective/analytic-35mm-camera-v01.json