본문 바로가기
그래픽스

[Graphics] Geometry Pipeline의 과정

728x90
반응형

1. Local Transform

    - 로컬좌표는 해당 3D모델의 가장 기본이되는 좌표계입니다. Scale, Rotation, Translate로 구성되어있습니다. 모델의 파일이 어깨로부터 얼마나 떨어져 있는지 허리는 땅에서부터 얼마나 떨어져 있는지 처럼 오브젝트의 상대적인 좌표를 저장하고 있어서 '상대좌표'라고도 합니다.

 

Modeling Transformation : 로컬좌표를 월드좌표로 변환해주는 과정입니다. 자식 오브젝트의 로컬좌표에 부모 오브젝트의 월드좌표를 곱해주는 방식으로 구합니다.

 

2. World Transform

    - 월드좌표는 오브젝트가 전체 월드에서 어느 위치에 있는지를 알려주는 좌표계입니다. 월드상의 위치계산은 월드좌표에서 끝나기 때문에 '절대좌표'라고도 표현합니다.

 

Viewing Transformation : 카메라의 역행렬을 월드좌표에 곱해줌으로써 View Space를 얻습니다.

 

3. View Space

    - 뷰스페이스는 카메라가 바라본 월드좌표이다. 3D세상을 바라보는 각도가 항상 일정하지 않기 때문에 카메라를 따로 만들어주고 카메라의 좌표(Eye), 바라보는 방향(At), 각도(Up)에 따라 좌표를 수정해줍니다.

 

Projection Transformation : 카메라에 잡히는 오브젝트들을 추출하는과정입니다. 카메라에 잡히는 공간을 뷰 프러스텀이라고 하는데, 이 뷰 프러스텀은 총 4가지 near plane, far plane, 화각(FOV : Field Of View), 종횡비(aspect ratio)로 구할 수 있습니다.

 

4. NDC

    - NDC좌표는 카메라에 잡히는 오브젝트들을 투영방식에 따라 노말라이즈해준 것입니다. y값은 -1.0 ~ 1.0사이에 값을 가지며, x값은 화면 비율에 맞춰 y값과 비례하게 설정됩니다.

 

Viewport Transformation : 각각의 오브젝트들을 z값에 맞게 zBuffer에 넣어 줍니다. 이과정에서 가까운 오브젝트가 앞에 보이고 뒤에있는 오브젝트는 가려보이게 됩니다.

 

5. Screen Space

    - 2D인 실제 화면에 띄울 수 있도록 픽셀값으로 변경해준 상태입니다. 여기까지 계산이 끝나면 화면에 출력이 가능해집니다.

반응형