랜더링 파이프라인이란 고정된 기능 기하 파이프라인이다.
즉, 변환 엔진으로써 모델을 위치시키고, 시점을 만들고, 화면에 장면을 투영하고, 정점을 짤라서 뷰 포트로 보내는 작업을 수행한다.
또한 빛을 계산하여 빛의 확산과 각 정점의 반사 성분을 결정하는 작업을 수행한다.
밑의 그림은 수행 하는작업과 순서를 나타내고 있다.
처음 들어오는 정점은 로컬 좌표 시스템에서 선언된 정점으로 어떤 변환도 적용되지 않은 상태이며 모델 좌표라고 부른다.
독립적인 좌표를 가지고 있는 모델은 다른 오브젝트들과 함께 사용하는 좌표 시스템으로 변환 된다.
이 변환 작업을 월드 변환(World Transformation) 이라하고 이 공간을 월드 공간이라 한다.
이렇게 수정된 정점은 카메라 기준으로 다시 수정 된다. 즉, 시점을 선택하는것이다.
월드 공간의 좌표는 재 위치되고 카메라 시점을 주위로 회전 하게 된다.
여기서 월드 공간에서 뷰 공간으로 전환되는데 이것이 뷰 변환(View Transformation) 이다.
그 다음은 투영 변환 (Projection Transformation) 이다.
이 단계에서 오브젝트를 시점과 오브젝트의 거리에 따라서 크기를 조정하여 깊이를 묘사 한다.
가까운 오브젝트는 크게, 먼것은 작게. 투영 변환을 거친 공간을 투영 공간이라고 한다.
마지막 단계에서 화면에서 보이지 않는 정점들은 제거 된다.
제거 된것들은 색상이나 명암 계산과 같은 그 어떤 작업도 적용되지 않는다.
이 작업을 클리핑(Clipping) 이라고 한다.
클리핑 작업이 적용된 뒤에 남아 있는 정점들은 뷰 포트 파라메터에 따라 재 조정되고 스크린 좌표로 변환 된다.
그리고 최종 정점들은 래스터화되고 화면이 보여지며, 이를 스크린 공간이라고 한다.
원시 기하 정보를 실시간으로 3차원적으로 보여주기 위해 가공하는 작업이 3D Graphics 이며
정해진 방식의 공정을 랜더링 파이프라인이라고 하며 상태 기계라고도 한다.
말그대로 자판기 처럼 돈 넣고 누르면 음료수가 나오는것이다. 정점 넣고 함수 호출하면 화면이 나온다는 말이다.
뭘 누르냐는 사용자 맘이고 누를수 있는것 또한 정해진것밖에 누르지 못한다. 사용 할 수 있는 함수와 플래그 값이 정해저 있듯이 ㅋ
이것이 고정된 랜더링 파이프라인이고 프로그래밍 가능한 파이프라인도 있다.
그것이 바로 많이 들어본 세이더 (Shader) 이다. 상당히 유연하고 다양한 작업을 할 수 있게 해준다.
세이더는 일단 돈 넣고 누르되 안에 음료수의 재료를 마음대로 고르고 섞어서 마시고 싶은 대로 마실수 있는것이다.
콜라 반 사이다 반 써니텐 조금에 얼음 넣고 ㅋㅋ
'DirectX > 3D' 카테고리의 다른 글
쿼드트리(Quad Tree) (0) | 2010.07.06 |
---|---|
DX 3D z버퍼 (0) | 2010.06.29 |
Z버퍼의 개념( 알파블랜딩) (0) | 2010.06.29 |
DirectX 한글 도움말 (0) | 2010.06.15 |
DX 수학관련 함수 (0) | 2010.06.09 |