Clip Space 간단히 말해서, 클립 공간은 프리즘으로 모델링되고, 이것을 클립 볼륨이라고 합니다. 만약 Primitive의 정점들이 이 공간 밖에 있다면 그 정점들은 GPU에 의해 클리핑됩니다. 어쨌든 우리는 그 정점들을 볼 수 없기 때문에 이는 불필요한 계산을 피하기 위한 절차입니다. 클립 볼륨은 다음 두 위치로 경계된 상자로 정의됩니다: $$ (-w, -w, 0), (w, w, w) $$ 여기서 w는 정점의 추가적인 차원이며 정점을 동차좌표계로 만드는 역할을 합니다. GPU에 의해 클리핑되지 않기 위해 클리핑 공간에서 \(x)\, \(y)\, \(z)\ 좌표는 다음 조건이 되어야 합니다. $$ -w \leq x \leq w $$ $$ -w \leq y \leq w $$ $$ 0 \leq z \l..
Computer Graphics
OpenGL 공식 사이트를 통해 Depth Buffer와 Stencil Buffer에 대해 알아보자. Ray tracing의 경우 연산량이 많지만 눈으로 부터 광선이 역추적하여 픽셀에 렌더링되기 때문에 멀리있는 오브젝트가 그려지지 않는다. (참고로 Ray tracing에서도 Depth Buffer가 사용될 수 있다.) 하지만 Rasterization에서 Depth Buffer가 없다면 어떻게 될까? 위 그림처럼 뒤에 있어서 일부분이 가려져야할 텍스처가 앞으로 나온 것처럼 보인다. 래스터로 투영된 객체는 앞 뒤 구분이 없기 때문에 나중에 렌더링된 픽셀이 표시되는 것이다. Depth Buffer 대신 픽셀마다 Z값을 저장하면 저장된 Z값과 현재 Z값을 비교하여 한 픽셀의 Depth Buffer에서 현재 Z값..