컴퓨터가 그림을 그릴 때 가까운 물체를 먼저 보이게 하려면, 물체 중심까지의 거리만 재면 될까요? 가상3차원 장면에서 카메라는 원점에 있고 한 광선은 , 으로 나가요. 좌표 단위는 m이고 는 시간 대신 광선상의 거리 매개변수예요. 불투명한 구 A는 중심 , 반지름1m, 구 B는 중심 , 반지름5m입니다. 카메라는 두 구의 바깥에 있어요.
구 A의 표면과 만날 때에는 이므로 입니다. 구 B에서는 이므로 입니다. 한 구에 들어갈 때와 나올 때의 두 교차를 모두 구한 뒤, 양수 중 가장 작은 값을 골라요.
따라서 이 광선이 처음 만나는 것은 B의 표면이에요. A 중심은 카메라에서5m, B 중심은8m여서 중심만 보면 A가 더 가깝지만 B의 앞 표면은3m에 있어요. 큰 물체는 중심이 더 멀어도 표면이 앞에 나올 수 있어요.
이 설정에서는 A가 B 안에 들어 있으므로 불투명한 B가 A를 가립니다. 겹친 구를 허용한 가상 장면이라는 조건이 중요해요. B를 투명하게 바꾸면 어떤 물체의 색을 얼마나 보이게 할지는 별도 광학 규칙이 필요해요.
광선 추적에서 정렬하는 대상은 중심의 거리 대신 해당 광선의 유효한 표면 교차예요. 뒤쪽 교차를 먼저 읽거나 음수 거리까지 후보에 넣어도 잘못된 장면을 만들 수 있어요. 한 줄의 광선과 두 구만으로 보이는 순서를 정하는 정확한 수학 조건을 확인할 수 있어요.
참고한 수학 개념: IMAGINARY · Virtual Ray Tracer.
이 글의 생활 상황과 계산 예시는 수학 이야기에서 새로 구성했습니다.
