[DirectX 3D 그래픽 파이프라인]
1단계 - 3D모델 구축
3D모델을 '로컬 좌표계' 에 띄우는 단계 (CPU)
렌더링 파이프라인 중 '로컬 스페이스' 에 해당한다.
2단계 - 가상 공간 배치
구축한 3D모델을 '월드 좌표계' 로 옮겨 하나의 장면을 구성하는 단계 (CPU)
렌더링 파이프라인 중 '월드 스페이스' 에 해당한다.
3단계 - 정점 단위 음영 계산
정점의 정보(좌표, 색상, 조명 등)를 변화시켜 물체를 다른 위치로 옮기거나 텍스쳐의 좌표를 바꾸거나 색상을 바꾸는 작업을 한다. (GPU)
4단계 - 정점의 증감
정점셰이더(Vertex Shader)에서 정점의 정보(Primitive)를 받고, 가진 정보를 이용해 정점을 증감시켜 새로운 도형 정보를 만든다.
※ Primitive
선, 원, 곡선, 다각형과 같은 그래픽 디자인을 창작하는데 필요한 요소.
5단계 - 카메라 공간으로의 전개
월드 좌표계로 변환된 좌표계를 카메라 좌표계로 변환한다.
렌더링 파이프라인 중 '뷰 스페이스' 에 해당한다.
6단계 - 컬링 (Culling)
최종 씬에 보이지 않는 불필요한 폴리곤을 잘라내 렌더링 및 연산에서 제외한다.
렌더링 파이프라인 중 '백스페이스 컬링' 에 해당한다.
7단계 - 조명 (Lighting)
3D 공간에는 빛이 없지만 현실 세계의 빛을 3요소로 만들어 흉내낸다.
조명의 요소에는 정반사광(Specular), 난반사광(Diffuse), 환경광(Ambient) 등이 있다.
렌더링 파이프라인 중 '조명' 에 해당한다.
광원에는 방향성 광원(Directional Light), 점 광원(Point Light), 스포트 광원(Spot Light)이 있다.
8단계 - 클리핑 (Clipping)
화면에 보이지 않는 부분은 그리지 않는 것을 의미한다.
렌더링 파이프라인 중 '클리핑' 에 해당한다.
9단계 - 투영 (Projection)
3D 물체를 2D 평면에 표현하기 위해 3D 모델 좌표를 2D 평면좌표로 변환하는 것을 의미한다.
렌더링 파이프라인 중 '투영' 에 해당한다.
10단계 - 뷰포트 전개
프로젝트 윈도우의 뷰포트라불리는 화면의 직사각형으로 변환하는 과정.
윈도우와 상대적이며, 윈도우 좌표를 이용한다.
렌더링 파이프라인 중 '뷰포트' 에 해당한다.
11단계 - 폴리곤 셋업과 레스터 라이즈 (Polygon Setup & Rasterize)
> 폴리곤 셋업
정점 파이프라인에서 정점 단위로 출력된 결과를 픽셀 단위로 분해하여 픽셀 파이프라인으로 보내주는 작업.
렌더링 파이프라인 중 레스터라이즈에 해당한다.
> 레스터 라이즈
스크린 좌표로 정점들을 변환하면 폴리곤 정보를 가지게 되는데, 레스터 라이즈는 각각의 폴리곤을 출력하는 데 필요한 픽셀컬러를 계산하는 과정이다.
간단히 말해, 폴리곤을 픽셀로 변경하는 과정을 말한다.
12단계 - 픽셀 파이프라인
정점 연산을 거쳐 생성된 폴리곤의 픽셀들에 대해서만 연산을 한다.
13단계 - 텍스처 적용
폴리곤과 광원, 조명의 조합만으로는 실감나는 3D오브젝트를 표현하는 데 한계가 있고, 광원과 조명은 많은 계산량을 필요로 하기 때문에 부하가 높아지는 문제가 생긴다. 이런 문제점을 해결하기 위해 나온 기술이다.
14단계 - 랜더백엔드
픽셀셰이더 이후, 넘어온 값을 써넣어도 좋은 지 검증하고, 써넣을 방법을 정하는 과정이다.
> 사용해도 좋은 지 검증
시저 테스트(Scissor Test) - 사용자가 원하는 부분만 출력
알파 테스트(Alpha Test) - a성분을 비교해 그에 따른 출력을 결정
스텐실 테스트(Stencil Test) - 사용자가 원하는 부분은 출력에서 제외 (거울, 그림자 효과에서 사용)
깊이 테스트(Depth Test) - 렌더링 순서가 정해지지 않은 경우만 깊이 값으로 정렬
> 어떻게 사용할 지
알파 블렌딩(Alpha Blending) - 두 픽셀을 가중치에 따라 섞음
안개(Fog)
안티앨리어싱(Anti Aliasing)
비등방성 필터링(Anisotropic Filtering)
이중선형 필터링(Bilinear Filtering)
알파 소팅(Alpha Sorting) - 불투명을 먼저 그린 후, 반 투명을 나중에 그리는 기법
15단계 - 출력
요약하면 아래와 같은 과정을 거친다.
[그래픽스 파이프라인 과정]
[렌더링 파이프라인 과정]
[출처]