Я использую библиотеку glm maths для решения следующей задачи: преобразование 2-мерной позиции экрана в трехмерное мировое пространство.
В попытке отследить проблему я упростил код до следующего:
float screenW = 800.0f;
float screenH = 600.0f;
glm::vec4 viewport = glm::vec4(0.0f, 0.0f, screenW, screenH);
glm::mat4 tmpView(1.0f);
glm::mat4 tmpProj = glm::perspective( 90.0f, screenW/screenH, 0.1f, 100000.0f);
glm::vec3 screenPos = glm::vec3(0.0f, 0.0f, 1.0f);
glm::vec3 worldPos = glm::unProject(screenPos, tmpView, tmpProj, viewport);
Теперь с glm :: unProject в этом случае я бы ожидал, что worldPos будет (0, 0, 1).Однако это происходит как (127100.12, -95325.094, -95325.094).
Не понимаю ли я, что должен делать glm :: unProject?Я проследил через функцию, и она, кажется, работает нормально.