뷰 공간

ㅋㅋ·2022년 7월 11일
0

게임수학강의

목록 보기
15/20
  • 뷰 공간

플레이어가 월드 공간을 탐험할 때, 일정한 영역을 모니터에 표현해야 한다.

월드 공간의 일부를 화면에 보여주기 위해 재배치한 공간을 뷰 공간이라 한다.

한마디로 뷰 공간은 화면을 찍는 카메라를 원점으로 월드 공간을 재배치한 공간이다.

월드에 배치된 오브젝트 좌표가 뷰 공간에 배치될 때 좌표는 아래 식과 같다

ViewPoint = -CameraPoint + WolrdPoint

이를 행렬로 나타내면 아래와 같이 나타낼 수 있다.

V=Tc1ToV = T_c^{-1} \cdot T_o

  • 뷰 행렬 계산

게임 오브젝트의 메시 데이터 한점은 로컬 좌표에서 월드 좌표로 계산됨
vwolrd=TRSvlocalv_{wolrd} = TRS \cdot v_{local}

그리고 월드 좌표가 카메라 위치 좌표에 따라 뷰 좌표로 변환 된다.

vview=Tc1vwolrd=Tc1TRSvlocalv_{view} = T_{c}^{-1} \cdot v_{wolrd} \\ \qquad = T_{c}^{-1} \cdot TRS \cdot v_{local}

Tc1T_{c}^{-1}을 뷰 행렬이라하며 카메라의 트랜스 폼 정보로 생성된다.

카메라가 회전한다면 플레이어는 오브젝트들이 반대 방향으로 회전하는 것으로 보인다.

이는 회전 행렬에 역행렬을 취하여 적용한 것과 같다.
vview=(TcRc)1TRSvlocal=Rc1Tc1TRSvlocalv_{view} = (T_{c}R_{c})^{-1} \cdot TRS \cdot v_{local} \\ \qquad = R_{c}^{-1}T_{c}^{-1} \cdot TRS \cdot v_{local}


  • 렌더링 로직
  1. 카메라로부터 뷰 행렬을 구해 계산
  2. 씬에 속한 오브젝트를 순회
  3. 오브젝트의 모델링 행렬 계산
  4. 뷰 행렬과 모델링 행렬 곱 결과를 저장
  5. 곱 결과와 메시 정점을 곱하여 뷰 공간 좌표로 변환
  6. 변환된 정점들로 삼각형을 만들고 이를 색칠
  7. 오브젝트마다 3~6 반복

0개의 댓글