개발

[DX12 공부 정리] 렌더링 엔진과 렌더링 파이프 라인

백인성(GGM) 2025. 3. 17. 23:36

렌더링 엔진이란? 

컴퓨터 그래픽스에서 3D 모델을 화면에 표시하기 위한 핵심 소프트웨어 구성 요소이다.

렌더링 엔진은 렌더링 파이프라인을 구현하고, 3D모델의 처리, 렌더링, 그래픽스 효과 및 초적화를 담당한다.



렌더링 엔진과 파이프라인의 주요 기능


그래픽스 API와 상호 작용 가능

DX, OpenGL, Vulkan... 등등

 

랜더링 파이프 라인을 구현 가능

입력 어셈블리, 버텍스/기하/픽셀쉐이더, 래스터 라이저, 출력 병합 등

 

재질 및 라이팅

조명, 그림자, 반사, 광택과 같은 라이팅 효과를 처리하고 3D모델의 재질을 관리한다.

 

카메라 및 뷰포트 관리
카메라의 시점을 관리하고 화면에 보이는 영역인 뷰포트를 설정하고 이를 통해 사용자에게 올바른 시각적 표현을 제공한다.

 

충돌 감지

몇몇 렌더링 엔진은 물리엔진과 함께 작동하여 객체간의 충돌을 감지하고 반응한다.

 

최적화 및 성능향상

렌더링 엔진은 그래픽스 작업의 성늘을 최적화하고, 하드 웨어의 기능을 최대한 활용하여 부드럽고 빠른 화면 출력을 제공한다.


렌더링 파이프 라인(DX) - 단계

1단계 : 입력 어셈블리(Input Assembly)

3D모델의 기본 구성 요소를 메모리에 로드하고 정렬한다. 대부분의 경우 이는 "정점(Vertex)" 데이터로 이루어져 있다.

 

2단계 : 버텍스 쉐이더

입력으로 받은 정점데이터를 처리하여 화면에 표시될 위치, 색상, 기타 속성을 계산한다.

 

3단계 : 기하 쉐이더 (선택적)
정점 데이터로부터 생성된 기본 도형(점, 선, 삼각형)을 확장하거나 변형하여 새로운 도형을 생성한다.

4단계 : 레스터라이저
쉐이더에서 생성된 도형을 화면에 표시될 "픽셀(Pixel)"로 변환한다. 3D공간에서의 투영 및 클리핑을 수행한다

5단계 : 픽셀 쉐이더
라스터라이저에서 생성된 각 픽셀에 대해 색상, 깊이 및 기타 속성들을 계산합니다. (매핑, 조명, 그림자)

6단계 : 출력 병합 (Output Merge)
최종적으로 게산된 픽셀값을 "화면 버퍼"에 합성한다. 이 과정은 깊이 테스트, 블렌딩 및 기타 후처리 작업을 수행한다.

 

반응형