개발/DX11

[DX11] 렌더링 파이프라인

by Majangnan 2024. 5. 9.

렌더링 파이프라인(그래픽 파이프라인)

 

물체 하나가 렌더링 되는 전체 과정

 

출처 : https://learn.microsoft.com/ko-kr/windows/win32/direct3d11/overviews-direct3d-11-graphics-pipeline

 

파이프라인 과정을 보면 중간에 Tessellator, Geometry Shader Stage가 보이는데 지금은 이 과정을 생략하고 오른쪽 이미지에 나온 파이프라인 단계를 보도록 하겠다.

 

파이프라인 단계는 총 5가지 단계로 이루어진다.

 

파이프라인 단계

1. Input-assembler Stage

2. Vertex Shader Stage

3. Rasterizer Stage

4. Pixel Shader Stage

5. Output-Merger Stage

 

 

Input Assembler Stage

Input Assembler Stage에서는 렌더링할 때 필요한 데이터들이나 세팅 값 (대표적으로 그릴 물체의 정점 버퍼)들을 받는 단계이다. 

 

 

Vertex Shader Stage

Vertex Shader Stage에서는 받아온 정점의 수정이나 변환이 수행되는 단계로 병렬 처리로 이루어지기 때문에 모든 정점들에게 일괄적으로 동시에 수행된다. 정점의 최종위치를 결정하여 Rasterizer에게 넘겨준다.

 

 

Rasterizer Stage

Rasterizer Stage에서는 입력으로 들어온 정점들의 위치 값을 이용하여 정점이 이루고 있는 내부 공간을 판단하고 내부 공간의 픽셀 값들을 찾는다. 찾은 픽셀들을 Pixel Shader로 넘겨준다.

 

 

Pixel Shader Stage

Pixel Shader Stage는 Vertex Shader Stage와 마찬가지로 픽셀당 일괄적으로 동시에 수행이 되는 단계이며 픽셀 별 출력을 산출하는 단계이다. 색상 값을 출력하는 단계라고 보면 된다.

 

 

Output Merger Stage

Output Merger Stage는 두 단계로 나뉘게 된다.

 

1. Depth Stencil State : 깊이 판정

- 그려질 지점의 깊이 값(0~1)을 비교해서 깊이가 더 작으면 출력 가능. (깊이는 0이 최소, 1이 최대)

- 더 작다면 기존의 깊이 텍스처 값을 자신의 깊이 값으로 바꾸어 놓는다. 그래야 깊이가 더 작은 물체 ( 더 앞에 있는 물체 ) 가 화면에 그려질 수 있음.

- 그러므로 화면을 Clear할 때 깊이 값을 1로 초기화 해야 물체가 위에 그려질 수 있음.

 

2. Blend State : 색상 혼합

- 최종 렌더링 된 색상을 출력.

- 색상 혼합 명령이 있을 경우 혼합할 색상을 더해서 최총 색상을 결정한다.

 

 

'개발 > DX11' 카테고리의 다른 글

[DX3D] 반사광  (0) 2024.10.10
[DX3D] 반사 벡터  (0) 2024.10.10
[DX3D] Cube Mesh  (0) 2024.10.07
[DX11] Release 함수  (0) 2024.05.08
[DX11] Device 초기화 및 렌더링  (2) 2024.05.06

댓글