[3차원 게임을 만드는 수학] 원근 투영 - 투영 변환 행렬(종횡비, 클립 공간, 깊이 값, 원근 나누기, NDC)
목표투영 변환 행렬 공식z 나누기와 w가 의미하는 것종횡비, 깊이 값, 동차 좌표계들어가기 전 본 글에서 직접적으로 설명하지 않지만, 언급하고 있는 내용입니다. 행렬 (행렬 연산 방법)깊이 값 인프런 강의 중 이득우의 게임 엔진을 지탱하는 게임 수학을 참고하여 작성되었습니다.DirectX에 맞추어 행 기반 행렬 · 왼손 좌표계 기준으로 수정되었습니다. 원근 투영원근 투영이란?3D 공간 상의 물체를 원근감을 나타내어 2D 평면에 투영하는 기술 투영 윈도우(투영 평면)은 카메라의 조망 방향과 수직이며, NDC 좌표계 [-1, 1] 범위를 가진다. 거리는 카메라의 초점 길이라고 부르며, 수직 시야각에 의해 결정된다.원근 투영 함수1. NearZ와 FarZ는 0보다 커야 함.NearZ와 FarZ는 동일한 값일..
[DirectX] 광선, 교차판정 - 반직선(광선)과 평면
목표광선의 용도 및 광선의 방정식광선과 평면의 교차 판정들어가기 전 본 글에서 직접적으로 설명하지 않지만, 언급하고 있는 내용입니다. 평면의 방정식광선광선이란?특정 위치에서 어떤 방향으로 무한대로 뻗어나가는 반직선 광선의 방정식은 다음과 같다. $p_{0}$는 광선의 원점, $u$는 광선의 방향, $t$는 매개변수이다.매개 변수 t는 반드시 [0, ∞) 범위 내에 있어야 하며, 0보다 작은 값을 이용하면 광선 뒤쪽에 점이 만들어진다.언제 사용할까?대표적으로 FPS 게임에서 특정 위치에서 어떤 방향으로 발사된 총알이 타겟에게 맞았는지 확인할 때, 광선으로 총알을 모델링하고, 적을 경계 구체로 모델링하여 판정한다.만약, 총알과 타겟을 AABB 간의 충돌 검사로 진행할 경우, 총알의 속도에 따라 누락이 발..