본문 바로가기

C++

렌더링 파이프라인

렌더링 파이프라인은 게임 상의 3D 월드를 2D 화면으로 출력하는 방법이다.

 

과정

로컬 스페이스 → 월드 스페이스 → 뷰 스페이스 → 후면 추려내기 → 조명 → 클리핑 → 투영 → 뷰포트 → 래스터라이즈

 

 

로컬 스페이스 : 물체를 표현할 때 기준이 되는 좌표계이다. 자체 좌표계를 이용한다. (월드 고려 X)

 

월드 스페이스 : 물체의 로컬 좌표를 월드상의 좌표로 변환한다.

 

뷰 스페이스 : 카메라를 월드 상의 원점으로 삼고, 카메라를 기준으로 물체들이 회전하는 영역이다. 

 

후면 추려내기 : 일반적으로 카메라는 폴리곤의 후면을 볼 수 없기 때문에 불필요한 후면 폴리곤을 잘라내서 렌더링에서 제외한다.

 

조명 : 광원은 월드 스페이스 내에 정의되지만 뷰 스페이스 변환 시 변환된다. 물체에 명암을 추가한다.

 

클리핑 : 화면에 보이지 않는 부분을 잘라내서 렌더링에서 제외한다.

 

투영 : 3차원에서 2차원  표현을 얻는다. 원근 투영을 이용해 원근법을 적용한다. 인터페이스같이 원근법이 적용되지 않는 경우는 직교 투영을 이용한다.

 

뷰포트 : 프로젝트 윈도우의 좌표를 화면으로 변환한다. 윈도우 좌표를 이용한다.

 

래스터라이즈 : 폴리곤을 픽셀로 변경하는 과정이다.

'C++' 카테고리의 다른 글

더블 버퍼링과 스왑 체인  (0) 2020.02.17
게임에 디자인 패턴 적용하기  (0) 2020.02.17
정적 바인딩, 동적 바인딩, 가상 함수 테이블  (0) 2020.02.16
BFS 구현 (큐)  (0) 2020.02.16
DFS 구현 (재귀, 스택)  (0) 2020.02.16