Game Programming/자문자답

렌더링 파이프라인이란 무엇인가?

Doanie 2022. 9. 13. 20:18

렌더링 파이프라인이란 무엇인가?


렌더링 파이프라인이란?

그래픽스 파이프라인이라고도 불리며 3D 컴퓨터 그래픽스에서 3차원 도형 혹은 이미지를 2차원 래스터 이미지로 표현하기 위한 단계적인 방법이다.


래스터 이미지란 컴퓨터에서 어떠한 도형 혹은 이미지를 픽셀로 구성하고 조합하여 일정한 간격으로 나열하여 하나의 화면을 표현하는 것을 의미한다.


렌더링 파이프라인 과정

렌더링 파이프라인 과정

 

DirectX9 기준 렌더링 파이프라인

입력 조립(Input Assembly)

       ↓

정점 쉐이더(Vertex Shader)

       ↓

래스터 라이저(Rasterize)

       ↓

픽셀 쉐이더(Pixel Shader)

       ↓

출력 병합(Output Merger)

 

DirectX11 기준 렌더링 파이프라인

입력 조립(Input Assembler) : 정점 정보를 정점 버퍼에 담아 전달 받음

       ↓

정점 쉐이더(Vertex Shader) : 정점 버퍼를 받아 공간 변환을 수행 /

                                                 Local Space →  World Space → View Space → Clip Space

                                                                   Model                  View              Projection

                                                          World Transform  View Transform  Projection Transform

       ↓

테셀레이션 (Tesselation) = Hull Shader + Tesselator + Domain Shader : 정점을 쪼개 디테일하게 표현 (생략 가능)

                                               준비단계      삼각형을 쪼갬   쪼갠것을 세분화

       ↓

기하도형 쉐이더 (Geometry Shader) : 정점 데이터에 정보를 추가하거나 삭제. 다른 도형으로 확장 또는 출력 여부

       ↓

래스터 라이저(Rasterize) : 투영된 3차원 삼각형으로 부터 픽셀의 색상을 계산하는 단계,

                                            앞면 출력하고 뒷면을 추려낸 후 뷰포트 변환한다.

       ↓

픽셀 쉐이더(Pixel Shader) : 픽셀 데이터를 생성하는 단계. 조명, 반사 그림자 및 텍스쳐를 입혀 색칠할 수 있다.

       ↓

출력 병합(Output Merger) : 렌더타겟에 출력하는 단계. 후면 버퍼에 기록된다.


렌더링 파이프라인은 3D 작업물(모델 혹은 이미지)을 2D인 모니터까지 출력하기 위해서 거치는 과정들이라고 쉽게 생각하면 될거 같다. 작업물의 정점 정보를 받아서 공간 변환을 수행하고 그것을 컬링하여 어떻게 출력할지 정한 후 픽셀 단위로 추가적인 디테일을 더해 화면에 출력한다!