OpenGL恢复由变换矩阵完成的所有变换

时间:2012-10-14 13:16:50

标签: opengl matrix mouseover transformation

我想在一个点上使用反向变换矩阵。 它的用途是什么?:  我的应用程序(游戏)将转换应用到几个正方形对象中,每个对象都有自己的转换矩阵,在绘制时应用它们。

但是我需要知道鼠标是否在每个对象上。所以,对于每个对象,我得到鼠标位置,并尝试应用所有反转的转换。恢复正方形和鼠标位置的原点。

如果我是对的,这样我就可以将变换的鼠标位置与对象bouds进行比较。

问题是......:我怎样才能应用这种逆转换? 我尝试了逆矩阵,但它始终存在......

2 个答案:

答案 0 :(得分:2)

如果转换矩阵没有逆(对于大多数常见转换来说不太可能),那么无法来撤消转换。这就是没有逆的意思:转换是单向的。

此外,通常这样做的方法不是将鼠标坐标转换为世界空间,而是通过将对象(或其边界框)转换为 window 空间。

答案 1 :(得分:1)

您可能想尝试gluUnProject()