본문 바로가기
이론/그래픽스

렌더링 파이프라인

by 사과잼빵 2015. 6. 11.

Rendering Pipeline이란?

3D좌표계에 표현되어있는 오브젝트들을 2D 공간상(모니터)에 표현하는 과정




1. 로컬 스페이스

모델링 스페이스라고도 불린다. 로컬스페이스는 각 오브젝트들의 정점들 리스트를 정의하는데 이용된다. 예를들면 게임상의 플레이어를 모델링하기 위해 플레이어의 팔의 위치, 머리의 위치 등을 나타내기 위한 공간이다. 다른 오브젝트와의 관계를 고려하지 않고 모델을 구성할 수 있다.

2. 월드 스페이스

위에서 로컬 스페이스상에 모델링된 오브젝트들을 전역(월드)상의 어떤 위치에 둘 것인지 정할 수있는 공간으로 하나의 씬을 나타내기 위해 이용된다. 로컬 스페이스의 물체들을 이동, 회전, 크기 변형을 통해 월드변환이라는 작업을 거쳐 월드 스페이스로 이동시킨다.

3. 뷰 스페이스

카메라가 월드 내의 임의의 위치와 방향을 가진다면 투영, 등의 차후에 있을 작업을 비효율적으로 만들기 때문에 카메라가 양의 z축을 바라보도록 위치시키고 이에 따른 월드 상의 오브젝트들도 이 변환만큼 같이 변환해줘야한다. 이 것을 뷰스페이스 변환이라고 한다.

4. 후면 추려내기(backface culling)

폴리곤들은 항상 전면 후면이라는 두개의 면을 가진다. 카메라로 볼 때 후면은 보여지지 않으므로 이후 작업들의 성능을 향상시키기 위해서 후면 폴리곤들을 추려낸다. 전면 후면은 폴리곤을 나타내는 점들의 순서에 따라 구분된다. DirectX에서는 디폴트로 시계 방향에 지정된 버텍스를 가진 폴리곤이 전면으로 취급된다.

5. 조명

광원들은 물체에 명암을 추가하여 장면에 사실감을 더해준다.

광원에는 점광원, 방향성 광원, 등이 있다. 

6. 클리핑

카메라의 시야절두체 볼륨을 벗어난 기하물체들으르 추려내는 과정이다.

- 절두체 완전 내부에 삼각형이 존재할 경우 그대로 보존

- 절두체 완전 외부에 삼각형이 존재할 경우 추려내진다.

- 절두체에 부분적으로 삼각형이 걸쳣을 경우 내부 부분만 보존하고 나머지는 추려낸다.

7. 투영

3D장면을 2D로 표현화는 과정이다. 투영 윈도우의 기하물체들은 스크린 스페이스로 변환 될 때 직사각형인 스크린으로의 변환으로 인해 왜곡이 되게 되는데 종횡비를 계산해줌으로써 왜곡을 보정할 수 있다.

(종횡비 = 화면 너비 / 화면 높이)

원근 투영방법과 직교 투영방법이 있다.

- 원근 투영 : 카메라에서 멀리 떨어진 물체는 가까운 물체에 비해 작게 나타낸다. 일반적으로 3D장면을 2D로 나타내는 방법이다.

- 직교 투영 :  카메라 부터의 거리와 상관없이 나타내는 방법. UI를 나타낼 때 주로 사용된다.


8. 뷰포트 변환

프로젝트 윈도우의 좌표를 뷰포트라 불리는 화면의 직사각형으로 변환하는 과정

보통 전체화면이 되지만 창모드로 실행될 경우 현재 클라이언트의 창 영역이 될 수 있다.

윈도우 좌표를 이용해 지정하게 된다.


9. 래스터라이즈

실제 모니터나 출력장치에 나타내기 위해 각각의 삼각형들을 그리는데 필요한 픽셀 컬러들을 계산하는 과정이다.




'이론 > 그래픽스' 카테고리의 다른 글

광원의 종류  (0) 2015.09.28
광원이 만들어내는 빛의 구성요소  (0) 2015.09.28