중심이 가까운 물체가, 빛에도 먼저 닿을까요?

가상 장면에서 같은 광선을 따라 두 구의 표면을 찾습니다. 물체 중심까지의 거리만 비교하면 처음 보이는 물체를 잘못 고를 수 있어요. 광선이 각 표면과 만나는 거리를 구해 처음 닿는 물체를 결정해요.

빈 관측 탁자의 카메라와 렌즈

이미지: AI 생성 · OpenAI image generation

컴퓨터가 그림을 그릴 때 가까운 물체를 먼저 보이게 하려면, 물체 중심까지의 거리만 재면 될까요? 가상3차원 장면에서 카메라는 원점에 있고 한 광선은 P(t)=(t,0,0)P(t)=(t,0,0), t≥0t\ge0으로 나가요. 좌표 단위는 m이고 tt는 시간 대신 광선상의 거리 매개변수예요. 불투명한 구 A는 중심 (5,0,0)(5,0,0), 반지름1m, 구 B는 중심 (8,0,0)(8,0,0), 반지름5m입니다. 카메라는 두 구의 바깥에 있어요.

구 A의 표면과 만날 때에는 (t−5)2=1(t-5)^2=1이므로 t=4,6t=4,6입니다. 구 B에서는 (t−8)2=25(t-8)^2=25이므로 t=3,13t=3,13입니다. 한 구에 들어갈 때와 나올 때의 두 교차를 모두 구한 뒤, 양수 중 가장 작은 값을 골라요.

tA,first=4,tB,first=3t_{A,\mathrm{first}}=4,\quad t_{B,\mathrm{first}}=3

따라서 이 광선이 처음 만나는 것은 B의 표면이에요. A 중심은 카메라에서5m, B 중심은8m여서 중심만 보면 A가 더 가깝지만 B의 앞 표면은3m에 있어요. 큰 물체는 중심이 더 멀어도 표면이 앞에 나올 수 있어요.

이 설정에서는 A가 B 안에 들어 있으므로 불투명한 B가 A를 가립니다. 겹친 구를 허용한 가상 장면이라는 조건이 중요해요. B를 투명하게 바꾸면 어떤 물체의 색을 얼마나 보이게 할지는 별도 광학 규칙이 필요해요.

광선 추적에서 정렬하는 대상은 중심의 거리 대신 해당 광선의 유효한 표면 교차예요. 뒤쪽 교차를 먼저 읽거나 음수 거리까지 후보에 넣어도 잘못된 장면을 만들 수 있어요. 한 줄의 광선과 두 구만으로 보이는 순서를 정하는 정확한 수학 조건을 확인할 수 있어요.

참고한 수학 개념: IMAGINARY · Virtual Ray Tracer.

이 글의 생활 상황과 계산 예시는 수학 이야기에서 새로 구성했습니다.

이 글 공유하기

개인정보 및 방문 통계 안내