사진 속 세 기둥, 실제 간격이 같다면 어디까지 이어질까?

실제 간격이 같은 기둥도 사진에서는 다르게 벌어집니다. 처음 세 위치가 주어진 핀홀 모형에서, 같은 줄을 카메라 앞쪽에 몇 개까지 이어 놓을 수 있는지 찾습니다. 계산되는 화면값과 앞쪽에 놓일 수 있는 공간 조건을 나누어 확인합니다.

햇빛이 비치는 길가에서 먼 곳으로 이어지는 목재 울타리 기둥과 난간

이미지: AI 생성 · 수학 이야기

같은 간격으로 세운 울타리 기둥도 사진에서는 간격이 달라 보인다. 세 기둥의 위치만 알면, 같은 간격의 줄을 카메라 앞쪽으로 계속 이을 수 있을까? 여기서는 실제 사진을 측정하지 않고, 원근 투영을 단순화한 좌표 모형으로 그 조건을 묻는다.

카메라를 원점에 놓고 앞쪽을 Z>0으로 정한다. 기둥의 대표점 (X,Z)은 화면의 위치 u=X/Z에 대응한다. 렌즈 왜곡이나 다른 물체의 가림, 사진 가장자리 밖으로 나가는 문제는 빼고, 오직 대표점이 카메라 앞쪽에 있는지만 판단한다.

실제 공간에서 같은 간격의 점들은 P_n=(a+bn,c+dn), n=0,1,2,…로 쓸 수 있다. (b,d)≠(0,0)이며, 일정한 벡터만큼 옮기는 조건이다. 처음 세 점의 깊이가 양수이고, 화면의 눈금을 조정한 위치가 다음과 같다고 하자.

u0=0,u1=1,u2=s>1.u_0=0,\qquad u_1=1,\qquad u_2=s>1.

정수 N≥3에 대해 처음 점부터 n=N인 점까지, 모두 같은 간격을 유지하며 앞쪽에 놓일 수 있는 s의 범위를 구해 보자. 첫 세 점은 이미 앞쪽이라는 조건을 확인했지만, 이어지는 점까지 자동으로 보장하지는 않는다.

처음 깊이 c는 양수다. u_0=0이므로 a=0이고, 모든 공간 좌표를 c로 나누어도 화면 위치는 같다. 따라서 c=1로 놓아 계산해도 된다. u_1=1에서 b=1+d이고, u_2=s에서 2(1+d)=s(1+2d)다. 이 두 식을 함께 풀면 깊이의 변화량이 정해진다.

d=2−s2(s−1),b=s2(s−1),Zn=1+dn,un=sn2(s−1)+(2−s)n.\begin{gathered} d=\frac{2-s}{2(s-1)},\qquad b=\frac{s}{2(s-1)},\\ Z_n=1+dn,\\ u_n=\frac{sn}{2(s-1)+(2-s)n}. \end{gathered}

여기서 d의 부호가 중요하다. 1<s<2이면 기둥을 하나씩 더할 때 깊이가 커진다. s=2이면 깊이가 일정하고 화면 위치도 u_n=n이다. 두 경우에는 모든 n≥0에서 앞쪽 조건이 유지된다.

반대로 s>2이면 깊이가 줄어든다. n=0부터 N까지 모두 양수이려면 가장 작은 마지막 깊이만 확인하면 된다. Z_N>0을 정리해 얻는 상한은 2보다 크므로, 앞의 두 경우까지 한 번에 포함할 수 있다.

P0,…,PN의 깊이가 모두 양수  ⟺  1<s<2+2N−2(N≥3).\begin{gathered} P_0,\ldots,P_N\text{의 깊이가 모두 양수}\\ \iff 1<s<2+\frac{2}{N-2}\qquad(N\ge3). \end{gathered}

상한과 같으면 마지막 대표점의 깊이가 정확히 0이 된다. 그 점은 화면식의 분모가 0인 데다 앞쪽 조건도 만족하지 못한다. 엄격한 부등호를 등호 포함으로 바꾸면 안 된다.

이 조건이 충분한지도 확인하자. 위에서 구한 b와 d를 쓰고 P_n=(bn,1+dn)으로 점들을 직접 놓는다. 일정한 이동 벡터로 연결되어 실제 간격은 같고, 첫 세 화면 위치는 0,1,s다. 허용 부등식 아래에서는 마지막까지 깊이가 양수다. 그러므로 필요조건을 찾은 것에 그치지 않고, 가능한 배치까지 만든 셈이다. 공간 전체를 양수로 확대해도 깊이의 부호는 바뀌지 않는다.

s=3이라면 어디까지 가능할까? 앞쪽인 점 번호는 n<4다. 처음 세 점 뒤에 네 번째 점 n=3을 놓을 수 있지만, 같은 간격으로 계속 이어지는 두 점은 다르게 판단해야 한다.

점 번호 화면 위치와 깊이의 판단
n=3 u_3=9, Z_3=1/4로 앞쪽이다.
n=4 Z_4=0이어서 화면식이 정의되지 않는다.
n=5 u_5=−15는 계산되지만 Z_5=−1/4로 뒤쪽이다.

유리함수의 분모가 0이 아닌 것만 확인하면 마지막 행도 계산 가능하다. 그러나 교사는 그 값을 앞쪽의 기둥으로 읽기 전에 공간 조건을 다시 확인하게 한다. 계산식의 정의역과 문항이 허용한 배치 범위는 같을 필요가 없다. 특히 s=2에서는 분모가 상수가 되어 u_n=n이므로, 모든 경우가 비상수 분모의 분수함수인 것처럼 다루지도 않는다.

화면 위치 세 개로 실제 기둥 사이의 미터 단위 간격까지 알아냈다는 뜻은 아니다. 양수 배율은 여전히 남는다. 이 글은 같은 간격이라는 조건 아래에서 앞쪽에 연속으로 놓일 수 있는 점들의 범위를 판단할 뿐, 실제 카메라의 보정이나 가림 없는 촬영을 입증하지 않는다.

착안: Carnegie Mellon University, 15-362/662 Computer Graphics Lecture 04: Perspective Projection & Rasterization의 PDF 1·9~14쪽 선택 텍스트와 11·13쪽 전체 이미지를 읽었다. 11쪽의 양의 깊이 방향과 가상 화면의 x/z 대응을 배경으로 썼다. 알려진 원근 투영이나 비율 보존 자체는 새 문항으로 세지 않는다. 세 화면 위치에서 깊이의 변화량을 역으로 정하고, 모든 N의 앞쪽 배치 조건과 가능한 좌표를 구성하는 질문은 자체 작성했다. 원전 도판·문항·렌더링 코드나 실제 촬영 결과를 옮기지 않았다.