본문 바로가기

ComputerScience/Computer Graphics

CG - 4. Viewing System

728x90

 1. Viewing System

- 컴퓨터 그래픽스란 결국 실세계에 있는 물체들의 사진을 찍는 것과 같다.

- 삼차원 모델이 이루는 scene을 2D화면에 projection하는 것이다.

2. Coordinates Transform Pipeline

Model Transform

- 가장 먼저 가상의 scene에 올려놓을 물체들을 모델링한다. 그리고 가상의 공간(world space)의 x,y,z 축에 물체들을 올려둔다. 이때 transformation 계산이 필요하다.

 

View Transform 

- scene이 완성되었다면 가상의 카메라의 좌표를 정의한다. 즉 veiwplane을 정의하는 것이다.

- 계산상 편의를 위해 world coordinate을 카메라를 기준(view coordinate)으로 x,y,z 축을 재정의한다.

view transform

- view transform을 위한 matrix는 위와 같다. 기존의 원점을 새로운 원점으로 이동시키고 회전시켜 축을 맞춘다.

 

Projection Transform

- view frustrum을 viewplane에 투영한다. 

- Orthographic : 평행하게 투영

- plane에 대한 Orthographic은 깊이 정보가 사라지기 때문에 역변환이 불가능하다. 따라서 깊이 정보를 유지하기 위해 unit cube로 transform한다.

- z-coordinate 좌표를 [0,1] 또는 [-1,1] 범위로 기억을 해두는 것이다.

- 참고로 그래픽작업은 고도로 병렬화 하는 작업이기 때문에 누가 앞에 있고 뒤에 있는지를 알 수 없다. 따라서 깊이 정보를 가지고 있다가 rasterization에서 사물의 앞뒤를 인지한다.

- Perspective : 원근법을 적용하여 투영

- perspective projection도 마찬가지로 평면이 아닌 unit cube로 깊이정보를 유지하게 된다.

- projection이 끝나면 clipping으로 화면 밖의 내용을 지운다.

 

Viewport Transform

- viewplane에 있는 2D이미지를 rasterize한다.

- screen속 window에 viewport를 정의하고

- viewport에 매핑해서 보여준다.

- 이때 아까 유지했던 깊이 정보를 가지고 사물의 앞뒤를 구분한다.

3. Summary

- 일련의 과정들을 정리하면 다음과 같다.

728x90
반응형

'ComputerScience > Computer Graphics' 카테고리의 다른 글

CG - 6. Surface Rendering  (0) 2021.10.08
CG - 5. Lighting  (0) 2021.09.29
CG - 3. Transformation  (0) 2021.09.24
CG - 2. 라이브러리 소개  (0) 2021.09.15
CG - 1. 컴퓨터 그래픽스?  (0) 2021.09.02