// viewport space has origin in lower left, but sdl gives coordinates with orgin in upper left,
// so Y is inverted here (since it maps from -1 to 1 simply by negating)
glm::vec4 ray_begin(inverse_VP * glm::vec4(clip_mouse.x, -clip_mouse.y, -1.0f, 1.0f));
// viewport space has origin in lower left, but sdl gives coordinates with orgin in upper left,
// so Y is inverted here (since it maps from -1 to 1 simply by negating)
glm::vec4 ray_begin(inverse_VP * glm::vec4(clip_mouse.x, -clip_mouse.y, -1.0f, 1.0f));