Graphics Pipeline
물체를 화면에 그리는데 필요한 과정을 의미한다.
우리가 이용하는 모니터에서 3D 영화나 게임이 재생될 때 사용자는 3차원 물체를 모두 그린다고 착각할 수 있지만
실제로 화면에 그려지고 있는 것은 자원의 효율적인 활용을 위하여 2차원의 형태를 그리고 있는 것이다.
이렇게 3차원의 정보를 2차원의 형태로 변환하고 모니터에 찍어내기 위해 필터링 과정을 거치는 작업을
그래픽스 파이프 라인이라고 한다.
본 글에서는 DirectX 11을 기준으로 서술할 예정이고
DX9 나 OpenGL은 세세한 부분은 다르지만 큰 틀에서 보면 비슷하다고 하기에 따로 정리하진 않을 예정이다.
마이크로소프트에서 제공하는 도큐먼트에서는 상기 이미지와 같이 그래픽스 파이프라인을 정리하였다.
가장 눈에 띄는 것은 Hull Shader에서 Domain Shader 까지의 과정이다.
이 과정을 Tessellation(테셀레이션) 과정이라고 하며 D9에서 D11로 넘어오면서 추가된 기능이다.
'테셀레이션'은 '쪽매붙임' 이라고도 하는데 바닥에 타일을 깔때 빈틈이 생기는 부분을
더 작은 조각으로 채우는 기법에서 유래된 듯하다.
(옛날부터 있던 기법인데 환경의 문제 때문에 D11이 되서야 실현 가능해졌다고 한다.)
이 외에 Vertex Shader, Geometry Shader, Rasterizer, Pixel Shader 등의 과정은 이전 버전에도 존재했으며
각각, 입력받은 정점 정보를 토대로 수학적인 효과를 부여한다거나 (Vertex Shader)
그 처리된 정점을 추가/제거 하여 정점 수를 조절하고 선, 삼각형을 생성한다거나 (Geometry Shader)
만들어진 결과물을 화면에 띄우기 위해 픽셀 이미지화 시키고 다듬고 (Rasterizer)
래스터화 된 이미지의 픽셀들의 색을 계산하는 역할을 한다. (Pixel Shader)
Graphics pipeline - Win32 apps
This section describes the Direct3D 11 programmable pipeline.
learn.microsoft.com
'Computer Science > Computer Graphics' 카테고리의 다른 글
[Computer Graphics] 셰이더의 종류 (0) | 2022.10.27 |
---|