CG - Vertex Processing
2022. 7. 15. 19:54
☘️ Computer Graphics/Fundamental
지금까지 정점들로 이루어진 object가 어떻게 변환하는지 알아보았다. GPU에서 어떻게 렌더링이 되는지 보자. 삼각형이 스크린 안에서 여러 개의 픽셀들을 차지하고, 그 픽셀의 색상을 정하는 정보를 rasterizer가 모아서, 픽셀 위치마다 저장해 놓는다. 이를 fragment라고 한다. 그냥 예비 픽셀, 후보 픽셀이라고 이해하면 된다. fragment shader는 실제로 fragment color를 결정한다. 그리고 마지막으로 output merger가 어떻게 보여줄 건지를 결정해서 최종 스크린을 보여준다. 이번 장에서는 vertex shader가 하는 일을 하나하나 살펴볼 것이다. 이제 이러한 물체가 어떻게 화면에 표현되는지 알아보도록 하자. vertex shader는 object space에서 ..
CG - Spaces and Transforms
2022. 7. 14. 10:17
☘️ Computer Graphics/Fundamental
Affine Transform의 3가지 중요한 변환에 대해 알아보자. Scaling (확대,축소) 먼저 볼 것은 Scaling이다. Scaling은 우리말로 축소, 확대이다. 2차원에서의 scaling을 먼저 보자. 간단하게 행렬로 표현하면 아래와 같다. Rotation (회전) 다음으로 2차원 회전은 다음과 같다. p 벡터의 좌표가 나와있을 때, 회전이 이루어졌을 때도 p' 벡터의 좌표를 알 수 있다. 기본적으로 반시계 방향으로 회전했을 때를 구한다. Translation (이동) 지금까지 본 Scaling(확대/축소)와 Rotation(회전)은 선형변환이다. 하지만 이동(translation)은 선형 변환이 아니므로 위와 같은 행렬의 곱으로 표현할 수 없다. 선형 변환과 달리 이동은 일반적으로 행렬의..