일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 디자인패턴
- 주식
- 유니티 최적화
- unity
- 배칭
- 자료구조
- 버텍스 쉐이더
- 네트워크
- HDRP
- Heap
- 멀티스레드
- 운영체제
- SQL
- c#
- 픽셀 쉐이더
- SQLD
- TCP
- 유니티
- 쉐이더
- vertex shader
- 스레드
- 프로세스
- 코스닥
- 렌더링파이프라인
- 통신
- 코스피
- SQL시험
- URP
- 정렬
- SRP
- Today
- Total
Let's Girin!
[그래픽스] 렌더링 파이프라인(3) / Rasterization/Pixel Shader/Output Merge 본문
1. Rasterization
래스터화 단계는 버텍스 셰이더에서 처리된 정점 데이터를 화면의 각 픽셀에 대응하는 프래그먼트(fragment)로 변환한다. 즉, 변화된 정점들로 삼각형들을 조립한 후 각 삼각형 내부를 차지하는 프래그먼트( fragment)를 생성하는 단계이다.
*프래그먼트
그래픽스에서 래스터화된(화면에 그려진) 각 픽셀을 나타내는 용어이다.
일반적으로 버텍스 셰이더와 픽셀 셰이더 사이에 위치하며, 프래그먼트는 해당 픽셀의 속성을 가지고 있다.
컬러 버퍼의 한 픽셀을 갱신하는데 필요한 데이터를 총칭하고, 정점들에 저장된 노멀,UV 등도 보간을 거쳐 각 프래그먼트에 할당된다.
2. Pixel Shader(Fragment Shader)
픽셀 셰이더 단계는 래스터화된 각 픽셀에 대한 최종 색상을 계산한다. 머티리얼의 속성, 텍스처, 라이팅 등 다양한 파라미터들이 결합되어 컬러가 결정되며, GPU는 이 단계에서 가장 많은 시간을 소모한다. 여기에는 라이트 맵핑, 텍스처 맵핑, 그림자 계산 및 모든 종류의 효과 및 후처리가 포함된다.
3. Output Merge
렌더링 파이프라인의 마지막 단계로, 픽셀 셰이더에서 계산된 최종 픽셀 색상을 프레임 버퍼에 쓰는 과정을 포함한다. 이 단계에서는 각 픽셀의 색상을 결정하고 여러개의 픽셀 셰이더에서 나온 결과를 결합하여 최종 출력 이미지를 생성한다.
■ Depth Testing
래스터화된 프래그먼트의 깊이 값을 현재 프래그먼트의 깊이 값과 비교하여 가장 가까운 프래그먼트를 결정한다.
이렇게 함으로써 후속 단계에서 가려진 부분이 화면에 렌더링되지 않게 된다.
■ Stencil Testing
스텐실 테스트는 프래그먼트가 스텐실 버퍼에 지정된 조건을 만족하는지 여부를 확인한다. 일반적으로 복잡한 렌더링 효과 및 후처리 작업에 사용된다. 특정 영역을 특정 조건에 따라 제어하는 데 사용되어 특정 프래그먼트가 그려지는 마스크 역할을 한다.
■ Blending
블렌딩은 여러 개의 프래그먼트가 동일한 픽셀에 쓰여질 때 이들을 결합하여 최종 색상을 생성하는 과정이다.
블렌딩은 주로 투명도, 반투명 효과, 그림자 등을 구현하는 데 사용되며 이 단계에서는 각 프래그먼트의 색상, 알파 값 등을 고려하여 최종 색상을 결정한다.
■ Framebuffer Writing
마지막으로 출력 병합 단계에서 결정된 색상은 프레임 버퍼에 쓰여지게 된다. 프레임 버퍼에는 화면에 표시될 최종 이미지가 저장되어 있으며, 출력 병합 단계에서 계산된 픽셀의 색상이 이 이미지에 추가됩니다.
'Graphics' 카테고리의 다른 글
[그래픽스] 렌더링 파이프라인(2) / Vertex Shader (0) | 2024.05.27 |
---|---|
[그래픽스] 렌더링 파이프라인(1) / Input Assembly (0) | 2024.05.25 |
[그래픽스] | 렌더링 파이프라인 (0) | 2024.05.23 |