INTERIOR MAPPING

창문 너머에 생기는 방

카메라를 옮겨 보세요. 같은 창문에서 다른 벽이 보입니다.

오른쪽 창문을 눌러 표본을 선택하세요. 캔버스에 초점을 두고 방향키로 표본을 이동할 수 있습니다. Shift와 함께 누르면 미세 이동, Home은 기본 표본입니다.

픽셀마다 가상의 교차점

평면 창문이 깊어 보이는 이유

문제 · 고정 사진은 시점이 바뀌어도 그대로

왼쪽은 카메라 (0, 0, −4)에서 만든 방 이미지를 고정한 사진입니다. 오른쪽은 매번 현재 카메라에서 창문 픽셀 p를 통과하는 광선을 계산합니다.

원인과 해결 · 먼저 만나는 면을 선택

d = p − 카메라, q = p + t·d. 각 축에서 t = (경계 − p) / d를 구하고 양의 유한 후보 중 가장 작은 값을 고릅니다. 방향이 0인 축은 제외합니다. 면 위 좌표로 벽·바닥 무늬를 읽고 창문 바깥은 외벽 마스크로 덮습니다. 시작점은 창문 테두리를 제외한 내부로 제한하며 광선은 방 안쪽을 향합니다.

p = (0, 0, 0), d = (0.5, 0, 1), 깊이 3이면 오른쪽 벽 t = 2가 뒷벽 t = 3보다 빠릅니다. 여기의 d는 단위벡터가 아니므로 t를 거리로 표시하지 않습니다.

가구도 별도 평면으로

알파가 남아 있고 벽보다 앞에 있는 가구 평면 교차만 채택합니다. 설정의 깊이를 바꾸면 책상이 뒷벽에 붙지 않고 방 가운데 서지만, 옆면·입체 두께는 생기지 않습니다.

대가와 한계

이 화면은 절차적 무늬를 CPU 픽셀 버퍼에서 계산하는 단일 박스 모델입니다. 실제 건물 투영, 반복 층, 반사, 가구 메시, 실내 이동·충돌은 계산하지 않습니다. 광선 단면은 선택 픽셀의 x-z 투영입니다. 지오메트리를 줄여도 화면에 덮인 픽셀 수만큼 교차 계산이 필요하므로 실제 엔진 성능을 뜻하지 않습니다.

Joost van Dongen · Interior Mapping §2