如何将鼠标位置转换为世界坐标?

时间:2015-10-15 17:33:34

标签: c++ opengl glm-math

我正在尝试查看针对固定Z位置单击的对象。我正在使用透视投影。

为了渲染我的对象,我使用:

glm::mat4 mvp = m_ProjectionView * model; // Inversed

为了计算鼠标的世界位置,我尝试了以下方法,但它没有正确转换。

glm::mat4 projViewInverse = glm::inverse( projection * view );
glm::vec4 cursorWorldPosition = glm::vec4( projViewInverse * glm::vec4( ( mousePosX / scrWidth ) * 2.0f - 1.0f, ( mousePosY / scrHeight ) * 2.0f - 1.0f, -1, 1 ) );

cursorWorldPosition.w = 1.0f / cursorWorldPosition.w;
cursorWorldPosition.x *= cursorWorldPosition.w;
cursorWorldPosition.y *= cursorWorldPosition.w;
cursorWorldPosition.z *= cursorWorldPosition.w;

0 个答案:

没有答案