728x90
반응형
렌더링 파이프라인(rendering pipeline)은 3차원 환경을 2차원 래스터 이미지로 표현하기 위한 단계적 방법을 말한다.
(= graphics pipeline)
Graphics API마다 조금씩 다른 파이프라인 구조를 가지지만 일반적으로 크게 보면 다음과 같은 구조를 지닌다.
1. Vertex Processing / Greometry Processing
- 삼각형 및 정점 조작을 책임지는 단계로, GPU상에서 실행된다. (vertex, index)
- Screen Space(2D 좌표)상에서의 정점 위치를 결정한다.
- 삼각형과 같은 기본 도형(Primitives)으로 재구성하여 다음 파이프라인 단계로 보낸다.
2. Rasterization
- 삼각형과 같은 기본 도형(Primitives)을 입력 받는다.
- 픽셀(pixel)을 결정하는데 필요한 데이터인 fragment를 생성한다.
*Fragment : 하나의 픽셀 생성하는데 필요한 데이터로 다음과 같은 정보들을 포함한다.
- raster position
- depth
- interpolated attributes (color, texture coordinates, etc.)
- stencil
- alpha
- window ID
이 단계에서 삼각형 세 꼭짓점에 의해 보간(interporation)된 데이터를 fragment 속성으로 지정한다.
3. Fragment Processing
- fragments를 입력 받는다. (존재하는 모든 fragments를 입력받음)
- fragments가 어느 frame buffer에 쓰여질지 결정하고, 어느 색, 깊이 값으로 쓰여지는지 결정하는 단계
하나의 fragment가 Pixel색을 결정짓는 것은 아니다. (예전에는 그런줄 알았다.)
4. Output Merging
- frame buffer각 위치에 대응되는 픽셀 색을 결정하는 단계이다.
파이프라인 상태에 따라 다음과 같은 처리 과정이 이 단계에 포함될 수 있다.
ex) Scissor Test, Stencil Test, Depth Test, Blending, Logical Operation, Write Mask
<참고> OpenGL Graphics Pipeline 위키
Graphics API Pipeline 비교
References
www.khronos.org/opengl/wiki/Rendering_Pipeline_Overview
영상 참고
728x90
반응형