DX
렌더링 파이프라인이란?
개발자 아윤
2025. 3. 17. 16:29
렌더링 파이프라인이란?
컴퓨터 그래픽스에서 모델을 화면에 표시하기 위한 핵심 소프트웨어 구성 요소 이다.
렌더링 엔진은 렌더링 파이프라인을 구현하고, 3D모델의 처리, 렌더링, 그래픽스 효과 및 최적화를 담당한다.
주요 기능
1. 그래픽스 API와 상호 작용 가능 ( DX, OpenGL, Vulkan )
2. 렌더링 파이프 라인을 구현 가능
- 입력 어셈블리, 버텍스/기하/픽셀 쉐이더, 래스터 라이저, 출력 병합 등
3. 재질 및 라이팅
- 조명, 그림자, 반사, 광택과 같은 라이팅 효과를 처리하고 3D모델의 재질을 관리한다.
4. 카메라 및 뷰포트 관리
- 카메라의 시점을 관려하고 화면에 보이는 영역인 뷰포트를 설정하고 이를 통해 사용자에게 올바른 시각적 표현을 제공한다.
5. 충돌 감지
- 몇몇 렌더링 엔진은 물리 엔진과 함께 작동하여 객체 간의 충돌을 감지하고 반응한다.
6. 최적화 및 성능 향상
- 렌더링 엔진은 그래픽스 작업의 성능을 최적화하고, 하드웨어의 기능을 최대한 활용하여 부드럽고 빠른 화면 출력을 제공
렌더링 파이프 라인의 단계 ( DX )
유니티에서 Scene에 무언가를 배치하고 메모리에
올린 정보를 토대로 게임뷰로 결과물을 출력하기
위한 단계들을 전문가들이 연구를 지금도 계속 하고 있으며, 그 단계를 스테이지로 표현한 방법이 이 사진이다.
테셀레이터 단계는 DX 11 때 추가되었다. 이 기능은 MMORPG에서 지형이 있을 때 가까운 곳의 지형은 좀 더 디테일하게 보이고, 멀리있는 지형은 허술하게 보이게 하는 기능이다.
결국 DX는 마소에서 제공하는 GPU 외주 라이브러리이다.
GPU 제조사들은 마소와 협업을 해서 DX 스펙에 맞는 제조를 해야만 한다.
1. 입력 어셈블리 ( Input Assembly)
- 3D 모델의 기본 구성 요소를 메모리에 로드하고 정렬한다. 대부분의 경우 이는 “정점(Vertex) 데이터로 이루어져 있다.
2. 정점 쉐이더
- 입력으로 받은 정점 데이터를 처리하여 화면에 표시될 위치, 색상, 기타 속성을 계산한다.
3. 기하 쉐이더 ( 선택적인 쉐이더 )
- 정점 데이터로부터 생성된 기본 도형 ( 점, 선, 삼각형 등 )을 확장하거나 변형하여 새로운 도형을 생성한다.
4. 래스터라이저
- 쉐이더에서 생성된 도형을 화면에 표시될 “픽셀”로 변환한다.
- 이 과정에서 3D 공간에서의 투영 및 클리핑을 수행한다.
5. 픽셀 쉐이더
- 라스터라이저에서 생성된 각 픽셀에 대해 색상, 깊이 및 기타 속성들을 계산한다.
- ex) 매핑, 조명, 그림자
6. 출력 병합 ( Output Merge )
- 최종적으로 계산된 픽셀값을 “화면 버퍼”에 합성한다.
- 이 과정은 깊이 테스트, 블렌딩 및 기타 후처리 작업을 수행한다.