바라보는 시점을 적용할 카메라의 위치 eyePosition와 바라보는 방향 eyeTarget 벡터를 선언해준다.
그리고 플레이어의 기준에서 바라보게 하기 위해서 플레이어가 현재 바라보고 있는 방향에 대한 정보를 얻어온다.
플레이어가 바라보는 방향을 t가 있는 ( 0, 0, 1 )을 기준으로 세워두고 플레이어 방향을 의미하는 X축과 Y축에 대한 각도를 행렬로 만들어서 시점고정을 하기위한 target에 초기화를 한다. 그리고 플레이어의 살짝 뒤편으로 이동해서 시점을 바라볼 수 있게끔 적당한 수치를 곱해서 eyePostion에 빼준다.
그리고 어떠한 위치에서 해당 시점을 바라보게 하기 위해 회전 후 이동을 하는 순서로 로직을 짠다.
이동 후 -> 회전은 점을 X축 회전으로 어느정도 끌어올려야하는지 알아내기 어렵기 때문에 z와 y축에 대한 각도가 어느정도 각도에 위치한지 arctan으로 알아낸 다음 X축 회전 후 Y축 회전으로 해당 위치로 이동시킨다.
여기서 -ax 처럼 역순으로 회전을 대응 시키는 이유는 자신이 아닌 세계를 돌리려는 의도에서이다.
어떤 두 점을 알고 있고 두 점에 대한 각을 얻고 싶을 때는 다음처럼 하면 된다.
'과거 자료' 카테고리의 다른 글
C++ 코딩 스타일 정리 (0) | 2022.11.10 |
---|---|
DirectX12 - 벡터 대수 연습문제 (0) | 2022.11.04 |
[#3] 회전 변환 식 유도하기 (0) | 2022.10.25 |
[#3] 선형대수학 - 기초 개념 정리 (0) | 2022.10.12 |
이미지를 회전, 확대 및 축소, 대칭 이동하기 (0) | 2022.10.08 |