0124
2026년 1월 24일

쿼터니언 카메라까지 기껏 구현해놨는데
카메라를 특정 좌표로 바라보는 함수가 없으면 멋이 안 산다.
그래서 look_at 만들고 돌고있는 점을 바라보게 해봤는데
시네마틱같고 멋있다.
사실 ViewMatrix3D에 인터페이스 추가한거긴 하다.
구현은 별거 없다.
그냥 그 점까지의 direction얻고 lookAt행렬 -> 33으로 쿼터니언 캐스팅
하고 뒤집어 주면 된다.
Quat ViewMatrix3D::make_orientation_by_point(const Vector3f& value) const {
auto view_dir = dp::normalize(value - m_position);
auto up = dp::Convert3DVectorTo(m_target_coord_system, { 0, 1, 0 });
auto rotmat = dp::look_at(m_position, m_position + view_dir, up);
auto quat = dp::make_quat_by_rotation_matrix(rotmat);
// 한번 뒤집어준다
quat = dp::conjugate(quat);
return quat;
}