Technical/Shader

Rendering Pipeline

ParkJinseok 2021. 3. 1. 15:59
  • 메쉬를 화면의 이미지로 만들기 위해 그래픽 카드(GPU)가 처리하는 일련의 과정

 

1. Vertex Shader

  • 현재 처리하는 메쉬의 Vertex를 화면 어디에 그려야하는지 계산함.

2. 형태 조립

  • 앞에서 처리한 Vertex들을 선으로 연결하는 단계
  • 화면에 Edge를 배치하는 단계

3. 래스터화

  • 이 단계에선 GPU가 앞에서 처리한 메쉬가 화면에서 차지할 가능성이 있는 픽셀을 계산함.
  • 픽셀 후보 하나하나에 대해 프래그먼트를 만듦.
  • 프래그먼트(Fragment)는 화면에 픽셀을 그리기위해 필요한 모든 정보를 담은 데이터 구조를 말함.
    • 모든 프래그먼트가 화면위의 픽셀이 되는 것은 아님.

4. Fragment Shader

  • 앞 단계에서 만든 선들이 만든 빈칸에 색을 칠해 줌.

5. Fragment 처리

  • Fragment 테스팅
    • 어떤 Fragment를 화면에 그리고, 어떤 Fragment를 버릴 것인지 판단하는 과정

    • 메쉬의 Fragement를 생성할 때, 전체 Scene에 대한 정보는 고려하지 않기 때문에 GPU는 화면에 실제로 그릴 픽셀보다 훨씬 많은 Fragement를 생성함.
      Ex) 벽 뒤가 보이는 않는 상황에서 벽 뒤에 자동차가 있더라도 자동차의 프래그먼트까지 생성함.

  • 브랜딩 연산
    • 반투명한 오브젝트들이 자신의 색상과 뒤에 비치는 오브젝트의 프래그먼트를 섞을 수 있게 해줌.

'Technical > Shader' 카테고리의 다른 글

OpenGL  (0) 2021.03.01
Shader  (0) 2021.03.01
Color  (0) 2021.03.01
Vector  (0) 2021.03.01
Mesh  (0) 2021.03.01