OpenGL

[OpenGL] 카메라와 뷰잉(viewing)

usingsystem 2024. 5. 3. 10:43
728x90

카메라와 뷰잉

컴퓨터 그래픽스에서는 카메라를 카메라라고 직설적으로 표현하지 않고 뷰라고 표현한다. 

즉 뷰잉은 카메라를 어떻게 설정할 것이냐이다.

카메라 == 뷰잉

좌표 종류

  • Object frame - 물체를 디자인하는 프레임 좌표 
  • World frame(q world) - 모든 것들을 배치하기 위한 월드 프레임 좌표
  • View frame - 카메라가 작동하는 수학적으로 카메라를 시뮬레이션 하기 위한 뷰 프레임

OpenGL 관점과 순서

  1. model transform - world frame상에서 어떤 물체를 원하는 위치로 이동하는 과정을 뜻 하며 즉 object를 world frame 기준으로 회전하거나 이동시킨다. Object frame -> World frame
  2. view transform - 배치되어 있는 모든 오브젝트를 카메라 좌표곌를 기준으로 재해석 하는 과정이다. 즉 world frame 전체를 view frame으로 변환한다. World  frame -> view  frame

OpenGL 초기 설정 

view frame = world frame

 

OpenGL Camera는 원점에서 -z방향을 보고 있다. z범위 (-1.0~ 1.0)내에 물체 촬영

 

Mview (View Transform, View matrix)

Mview는 카메라의 변환을 의미하는 행렬이다. 만약 모델 메트릭스를 이용하여 모든 물체들을 월드위치에 가져다 놨다면 

카메라 관점에서 이 물체들의 좌표를 해석하는 방법이 바로 m view라고 한다.

즉 하나하나의 좌표들이 q world일 때 이것들이 뷰 프레임인 카메라 프레인 기준으로 봤을 때의 새로운 좌표 q뷰로 변환되어야 한다.

 

qview = mview * qworld

 

Camera의 이동을 가능하게 한다.

World frame 전체를 view frame(Window 화면)으로 변환한다.

 

Viewing API 용어 정리 

p : VRP(view reference point) : 3D point. camera position

  • 가상 카메라의 위치를 의미함.

n : VPN(view plane normal) : view plane 에 수직

  • 카메라의 뒤쪽을 가리키는 수직인 벡터를 의미하며 어느 방향으로 볼지를 결정 (z 축 방향)

v : VUP(view up vector) : view plane 의 y방향 설정

  •  view plane의 y 방향설정

x축 방향은 v * n을 하는 과정에서 나오게되어 따로 설정하지 않는다. 이를 u라고 표현한다.

 

728x90