Rendering Pipeline

Date:     Updated:

카테고리:

태그:

홍정모님의 그래픽스 새싹코스 강의를 듣고 정리한 내용입니다.


🐥 Vertex Buffer

1

  • Vertex Buffer에 vertex 정보 담기
  • Vertex마다 Position, Normal, Color, UV coord 등의 정보를 담고 있음


🐥 Input Assembler

ezgif com-gif-maker

  • 렌더링 파이프라인에서 어떤 물체를 그릴 때에는 그림과 같이 삼각형 단위로 그려진다
  • 이때 인접한 삼각형끼리 중복되는 vertex가 존재
  • 삼각형마다 vertex 정보 넘겨주면 매우 비효율적

2

  • 따라서 vertex마다 index를 지정 후에 index 정보를 넘겨줌
  • Index 정보와 Topology(그리는 순서)를 지정해주면 훨씬 효율적인 방법으로 렌더링 가능

3


🐥 Vertex Shader

4

  • Object space에 존재하는 vertex 정보들을 변환해주는 작업
  • Object spacedptj World space로 변환
  • Camera space(orthographic or perspective) 변환
  • NDC 변환
  • Viewport 변환 (ex. 창의 왼쪽 절반에다만 렌더링 하고싶다)


🐥 Tessellation

Tessellation LOD
5 6
  • Tessellation 단계에서는 메시의 폴리곤이 더 잘게 쪼개지거나 합쳐진다
  • 하드웨어 단에서 작업
  • Level Of Detail(LOD)와 같은 최적화에 사용됨


🐥 Rasterization

7

  • 오브젝트가 그려질 픽셀들 결정
  • Bounding Box 구한 뒤 필셀마다 포함되는지 안 되는지 판단


🐥 Pixel Shader (Fragment Shader)

7

  • Color 정보는 vertex마다 가지고 있음
  • 하지만 주어진 vertex가 아닌 픽셀들의 color 값도 결정해야 함
  • 해당 작업을 해주는 것이 Pixel Shader


🐥 Output Merge Stage (Blending)

Depth Test Ray Tracing
8 9
  • Depth test를 통해 같은 픽셀을 여러 번 계산하는 overdraw 방지
  • Ray Tracing을 이용한 후처리 등등..



맨 위로 이동하기

Graphics 카테고리 내 다른 글 보러가기

댓글 남기기