如何使用ModelViewProjection Matrix从屏幕空间到对象空间?

时间:2015-04-19 13:07:07

标签: opengl matrix

所以我有这个Square,我渲染每一帧。不是立方体,2个三角形。 我绘制此Square通过模型视图投影(P * V * M)矩阵到着色器。 投影矩阵可以是透视投影或正交投影。 我一直在尝试传递屏幕坐标,将它们带到剪辑空间,然后乘以逆MVP矩阵,但我只是没有得到结果。 基本上我需要弄清楚光标是否包含在Square中。

到目前为止,这是我的代码:

Matrix4 inverse = myMVP;
inverse.invert();

Vector2 clippos((aGlobalPos.x / width) * 2 - 1.0f, ((1.0f - (aGlobalPos.y / height)) * 2) - 1.0f);
Vector4 wspace = inverse * Vector4(clippos.x, clippos.y, 0, 1);
wspace.x /= wspace.w;
wspace.y /= wspace.w;
return Vector2(wspace.x, wspace.y);

我期待如果返回值在0 -> squareSize的范围内,它将被包含。

有人可以花些时间来解释我做错了什么,为什么?

由于

0 个答案:

没有答案