[GGP] 5. Input Assembler & Vertex Processing (2)

Cherish·2023년 6월 2일

Game Graphic Programming

목록 보기
4/14
post-thumbnail

☁️ Rendering Piepline


☁️ View Frustum (절두체)

= 관심 영역만 보자!
= view volume

🔎 View volume

field of view(fov) 가 제한되어있기 때문에 카메라는 모든 물체를 보는 것이 아님
fov = 얼마나 넓게 볼 것인가

  • fovy = y축 기준 field of view
  • aspect : 비율

🔎 View frustum culling

  • out of frustum인 물체들은 GPU pipeline에 들어가기전에 discard 됨
  • discard의 의미는 아예 memory에 올리지 않거나 음수인 애들을 다음 stage에서 제외시키는 방법이 있다.

🔎 Clipping

view frustum 외부의 애들은 clip

  • rasterization stage에서 수행됨



☁️ Projection Transform

= view frustum을 정육면체로 만들자!

  • view frustum을 원점을 중심으로 하는 axis-aligned cube에 다시 위치시킨다.
  • 그리고 큐브를 기준으로 clipping.
  • pyramidal view frustum 은 clipping에 쓰이지 않는다.
  • projection transform을 하면 clip space에 위치됨

  • All 3D points on a projection line are mapped onto a single 2D point in the projected image
  • 원근법을 표현할 수 있다.



☁️ Right-hand System vs. Left-hand System

  • OpenGL : RHS
  • DirextX : LHS



☁️ Projection Transform (OpenGL)

  • z-axis inverted
  • view frustum cube의 사이즈가 2x2x2로 바뀐다.















0개의 댓글