23. Orthographic Projection
직교투영은 원근투영과 다르게 깊이 값에 대해 크기를 보정해주지 않는다. UI와 같은 고정된 화면을 만들 때 유용하게 사용된다. *NDC 좌표계는 x(-1~1), y(-1~1), z(0~1)로 되어 있다. - x, y만 봤을 때 가운데가 (0, 0)이고 우상단은 (1, 1)이 되어야 함 - 실제 크기인 width, height를 대입해보면 좌표는 우상단이 w/2, h/2이므로 이 값을 1, 1로 만들어 주어야 한다. - 그러려면 x = 2x/w로 계산하고, y = 2y/h로 계산해야 한다. - (x는 x를 (w/2)로 나눈 값이고, y는 y를 (h/2)로 나눈 값이다.) - z는 비교적 조금 더 까다롭다. - z = z / (f - n) - n / (f - n) 이 식에 z를 대입하여 계산해면 된다. - ..
2023. 2. 2.
22. Quaternion - 개념과 사용 방법
- 사원수라고도 부르며, Vector4와 같이 float4개로 이루어진 단위 - 행렬에 비해 빠르고, 메모리를 적게 차지한다 - 그리고 짐벌락 현상을 막을 수 있다. 쿼터니언 q는 xi + yj + zk + w로 이루어져 있으며, xi + yj + zk를 허수부, w를 실수부로 표현한다. i, j, k는 서로 다른 공간에 존재하며, 아래와 같은 식을 만족한다. i² = j² = k² = -1 ij = -ji = k jk = -kj = i ki = -ik = j 각 요소의 제곱은 -1이지만 각각 요소에 대한 곱은 다른 차원으로 이동된다. xi + yj + zk + w 로 이루어진 구성은 Vector4에서 x, y, z, w의 구성과 비슷함을 알 수 있다. 따라서 3차원 벡터 v(x, y, z)를 4차원 벡..
2023. 2. 1.