라떼군 이야기


10 / 10강

장면에서 한 장의 화면까지

지금까지 배운 계산을 이어 붙이면 장면이 화면으로 바뀝니다. 어느 단계에서 값이 바뀌는지 알면 화면이 잘못 나온 원인도 좁혀 갈 수 있습니다.

물체의 좌표 → 장면에 배치 → 카메라 좌표
→ 투영과 클리핑 → 화면의 샘플
→ 가시성, 재질, 조명 계산 → 픽셀의 색

실제 구현은 일부 단계를 합치거나 순서를 조정합니다. 이 그림은 각 단계의 목적을 구분하기 위한 지도입니다.

다른 길로 색을 구할 수도 있습니다

래스터화는 삼각형이 화면의 어느 샘플에 걸리는지 봅니다. 광선 추적은 카메라에서 나가는 광선이 무엇과 만나는지 찾습니다. 교차점에서 재질과 빛을 계산하고, 반사나 굴절 방향으로 추가 광선을 보낼 수 있습니다.

빛이 표면 사이를 여러 번 오가며 주는 영향이 전역 조명입니다. 광선을 한 번 쏘는 것만으로 전역 조명이 자동 완성되지는 않습니다. 전통적인 라디오시티는 주로 확산 표면 사이의 에너지 전달에 초점을 둡니다. 어떤 표면과 효과를 모델링하는지에 따라 방법을 고릅니다.

두 눈에 보여주는 화면

입체 영상은 조금 다른 위치의 두 카메라로 장면을 계산해 각 눈에 해당 영상을 보여주는 방식으로 만들 수 있습니다. 좌우 영상의 위치 차이가 깊이 단서가 됩니다. 단순히 한 이미지를 좌우로 통째로 밀면 모든 깊이의 관계를 올바르게 만들 수 없습니다.

마지막 연습

카메라는 원점에서 +z 방향을 봅니다. 꼭짓점이 (-1,-1,2), (0,1,2), (1,-1,2)인 삼각형을 초점 거리 1로 투영합니다. 표면의 단위 법선과 빛 방향은 모두 (0,0,-1)이라고 합시다.

  1. 투영 후 좌표는 무엇인가요?
  2. 단순 램버트 확산 비율은 얼마인가요?
  3. 같은 화면 위치에 더 가까운 불투명 면이 있으면 무엇이 보일까요?
해설 보기

좌표는 (-0.5,-0.5), (0,0.5), (0.5,-0.5)입니다. 깊이 2로 나눕니다. 법선과 빛 방향의 내적은 1이므로 확산 비율도 1입니다. 더 가까운 불투명 면이 깊이 검사를 통과하면 그 면이 보입니다. 위치 계산, 밝기 계산, 가시성은 서로 다른 단계입니다.

제품 기획, 개발 파트너 찾으시나요? 개인, 팀, 기업 모두 환영. 문제 정의부터 출시까지 함께합니다.