Неправильный расчет лучей мышиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Неправильный расчет лучей мыши

Сообщение Anonymous »

Я работаю над игрой C ++ OpenGL Game и использую iMgui для редактора UI . Для выбора объекта мне нужен Mouse Ray из сцены Viewport. Я пытался вычислять лучу мыши таким образом.

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»