이전까지 화면에 있는 픽셀 데이터만으로 화면에 그려주었음
그러나 이제부터 앞으로 다룰 데이터는 3차원 데이터임.
모니터는 x, y좌표 즉 2차원인데 데이터는 3차원이면 출력은 어떻게?
3d 데이터가 2d 데이터로 바뀌어서 출력되는 과정을 렌더링 파이프라인이라고 한다.
정점 데이터 : 점 하나 하나를 의미함
레스터라이저 : 정점데이터를 GPU가 받았으면 화면에 보이는 픽셀들을 계산해서 넘겨주는 과정
픽셀 데이터 : 무슨 색깔로 할래? 색깔을 정하는 부분
1. Input Assembler 단계
- 입력 데이터를 읽어오는 단계
- 정점 데이터와 인덱스 데이터를 읽어들여 그리는 순서 결정
- 그래픽 카드가 정점 데이터를 읽을 수 있도록 정렬
- 인덱스 데이터로 그리는 순서 결정
2. Vertex Shader 단계
- 각 정점에 대한 처리를 수행
- 정점 위치, 색상, 텍스쳐 좌표 등을 가진 정점 데이터를 읽어들여서 카메라 시점의 2D 좌표로 변환
- 이 정점 데이터를 이용해서 그리는 순서를 결정하는 Rasterizer 단계로 넘겨줌
- 정점 속성들을 특정 방법으로 변형, 계산, 그리고 정점간의 연산을 가능케 한다.
3. Hull Shader 단계
- 폴리곤을 폴리라인으로 변환하는 단계
- 폴리곤을 정점, 인덱스, 폴리라인으로 표시하고 폴리라인에 대한 연산 수행
- 고정 파이프라인에서 변형가능한 폴리곤을 그리기 위한 단계
*고정파이프라인 : 그래픽카드에서 정점 및 픽셀셰이더를 처리하기 위한 고정된 알고리즘을 사용하는 그래픽스 파이프라인
*폴리곤 : 그래픽스에서 사용하는 기본적인 면을 의미함. 폴리곤은 정점으로 구성되어 있고 연결되어 형성된 면을 의미함
*폴리라인 : 정점들을 연결하여 생성된 선들의 집합 각 점들은 선분을 형성하며 그 선분을 연결한게 폴리라인
4. Tessellator 단계
- 폴리라인을 폴리곤으로 변환하는 단계
- 폴리라인을 폴리곤으로 변환하는걸 Tessellation이라고 하며, 본 단계에선 이 과정을 수행함
- 더 세부적인 면을 구성하거나 더 높은 품질의 렌더링을 수행할 수 있다.
*왜 폴리곤을 폴리라인으로 만들고 다시 폴리곤으로 만들지?
-Tessellation은 더 세부적인 면을 구성하여 더 높은 품질의 렌더링을 수행할 수 있다고 했다.
-그러므로 폴리곤 -> 폴리라인 -> 폴리곤이 아니라 폴리곤->폴리라인->폴리곤 + Tessellation이라고 보는 것이 정확하다.
5. Domain Shader 단계
-Tessellator 단계에서 폴리라인을 폴리곤으로 변환했으므로 그 폴리곤에 대한 계산을 수행한다.
-폴리곤을 더 세부적으로 구성해서 더 높은 품질의 렌더링을 수행할 수 있음
-예를 들면 빛, 그라디언트, 그림자, 반사 등등
6. Geometry Shader 단계
-일련의 정점 데이터를 입력으로 받아서 그래픽 객체를 형성하는 단계
-정점을 통해 생성된 프리미티브(점, 선, 삼각형)을 새로운 프리미티브로 변환하거나 삭제할 수 있다.
7. Rasterizer 단계
- 정점 데이터를 이용해 그리는 순서를 결정하는 단계
- 픽셀 위치, 그리는 순서 결정
- 카메라 시점에서 정점의 2D 좌표를 기반으로 그리는 영역을 결정하는 Clipping(자르기) 작업도 포함
- 그리는 순서와 색상을 기반으로 픽셀 셰이더 단계 수행
8. Pixel Shader 단계
-각 픽셀에 대한 색상 및 깊이값을 계산하는 단계
-이 단계에서 조명, 재질, 텍스쳐, 투명도 등과 같은 요소를 사용하여 최종 색상을 결정한다.
-이를 통해 3D 객체를 2D 화면에 표시할 수 있도록 준비한다.
9. Output Merger 단계
-각 픽셀에 대한 최종 색상값을 화면 버퍼에 저장하는 단계
-화면 버퍼에 저장된 픽셀 값들을 조합해서 최종적으로 화면에 출력할 이미지를 생성한다.
-조합할 때 이전 단계에서 계산한 스탠실 값, 깊이 값들을 고려하여 출력될 픽셀들을 선별한다.
'DirectX > [AssortRock] DirectX11 2D' 카테고리의 다른 글
230118_ConstantBuffer (0) | 2023.01.18 |
---|---|
230116_D2D 삼각형 그리기 (0) | 2023.01.16 |
230113_D2D 삼각형 그리기 예습 (0) | 2023.01.14 |
220113_D2D 장치 초기화 (0) | 2023.01.13 |
230112_D2D 렌더링 파이프라인 개요_2 (0) | 2023.01.12 |
댓글