Код: Выделить всё
ImVec2 mousePos = ImGui::GetMousePos();
ImVec2 windowPos = ImGui::GetWindowPos();
ImVec2 windowSize = ImGui::GetWindowSize();
ImVec2 mousePosInWindow = { mousePos.x - windowPos.x, mousePos.y - windowPos.y };
float ndcX = (2.0f * mousePosInWindow.x / windowSize.x) - 1.0f;
float ndcY = 1.0f - (2.0f * mousePosInWindow.y / windowSize.y);
float ndcZ = 1.0f;
glm::vec4 ndc(ndcX, ndcY, ndcZ, 1.0f);
glm::vec4 worldPos = glm::inverse(Camera::m_proj * Camera::m_view) * ndc;
worldPos /= worldPos.w;
mouseRayDirection = glm::normalize(glm::vec3(worldPos));
Подробнее здесь: https://stackoverflow.com/questions/794 ... alculation