NDC
NDC (Clip Space)란 무엇인가?
렌더 파이프 라인에서 Vertex Shader 단계의 마지막에, 지정된 좌표를 받아들이고 이 범위에서 벗어난 모든 좌표는 자르게된다. 이때, Clip 된 좌표들은 모두 폐기되고, 남은 좌표들은 최종적으로 파편화되어 화면에 보이게 되고 눈에 보이는 모든 좌표들이 -1.0과 1.0 범위 안에 지정하는 것은 직관적이지 않기 때문에, 우리가 원하는 화면에 표현하기 위한 공간으로 다시 변환하게 된다. 이때 사용되는 것이 NDC(Noramlize Device Coordinate)이며, 이 공간은 투영(Projection) 행렬에 정의된다. 앞서 유도한 투영 행렬이 정의하는 Viewing Box는 절두체(Frustrum)라고 불린다. 이 절두체 내부에 있는 좌표들은 화면에 나타나게 된다. 지정한 범위 내에서 NDC로..
투영 행렬 유도와 ndc
우리가 살고있는 세계에는 원근감이라는게 있다. 가까운 물체는 크고 먼 물체는 작게 보이는 것이다.언리얼로 원근감이 있는 카메라와 없는 카메라를 비교해보자 왼쪽은 원근감이 없는 흔히말하는 오쏘그래픽인 카메라이고오른쪽은 시야각이 90도인 투영행렬이 들어간 카메라다.누가봐도 오른쪽이 원근감도 있고 우리가 사는 세계와 비슷하다. 왼쪽 같은 카메라를 사용하는 게임들도 있지만 원근감이 있는 게임을 만들려면 투영행렬이 필요한것이다. 원근감을 표현하는 카메라는 카메라로부터 시작하는 사각뿔의 앞부분이 잘린 시야영역을 사용한다. 그럼 상하 좌우 전후로 이루어진 절두체(FRUSTUM)이 나오게 된다.그 절두체를 X축 방향에서 보면 이와 같은 그림이 나온다. 그중 근 평면이 우리의 모니터 화면이고 카메라로 부터 근 평면까지의..