☁️ 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에서 수행됨

= 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



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