我正在尝试查看针对固定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;