본문 바로가기
DirectX/[AssortRock] DirectX11 2D

230111_D2D 렌더링 파이프라인 개요

by 헛둘이 2023. 1. 11.

이전까지 화면에 있는 픽셀 데이터만으로 화면에 그려주었음

그러나 이제부터 앞으로 다룰 데이터는 3차원 데이터임.

 

모니터는 x, y좌표 즉 2차원인데 데이터는 3차원이면 출력은 어떻게?

3d 데이터가 2d 데이터로 바뀌어서 출력되는 과정을 렌더링 파이프라인이라고 한다.

 

정점 데이터 : 점 하나 하나를 의미함

레스터라이저 : 정점데이터를 GPU가 받았으면 화면에 보이는 픽셀들을 계산해서 넘겨주는 과정

픽셀 데이터 : 무슨 색깔로 할래? 색깔을 정하는 부분

 

출처:https://grandstayner.tistory.com/entry/DirectX11-Rendering-Pipeline%EC%9D%98-%EB%8C%80%EB%9E%B5%EC%A0%81%EC%9D%B8-%EB%AA%A8%EC%8A%B5

 

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

댓글