mat4 camera_mat = glm::lookAt(vec3{ 0.0f, 2.0f, 4.0f }, vec3{0}, vec3{ 0.0f, 1.0f, 0.0f });
// refactored above code to:
camera.position = vec3{ 0.0f, 2.0f, 4.0f };
camera.rotation = glm::angleAxis(atan2(camera.position.y, camera.position.z), vec3{1.0f, 0.0f, 0.0f});
vec3 target = camera.rotation * vec3{0.0f, 0.0f, -1.0f};
mat4 camera_mat = glm::lookAt(camera.position, target, vec3{ 0.0f, 1.0f, 0.0f });
Comments