如何在OpenGL / LWJGL中规范化鼠标坐标

时间:2014-05-26 12:59:03

标签: opengl lwjgl

我正在尝试检测我的鼠标是否悬停在我绘制的矩形上(使用VBO),但是当我通过Mouse.getX()&获取鼠标坐标时。 Mouse.getY(),它返回窗口坐标(即(480,200))。如何从[-1,1]范围内获取鼠标坐标?

1 个答案:

答案 0 :(得分:3)

琐碎的方法

您可以通过仅了解视口或在整个窗口中绘制其内部大小来实现此目的。假设鼠标坐标在左上角是0,0

以下内容会将输入规范化为[-1, 1]

double normalizedX = -1.0 + 2.0 * (double)Mouse.getX() / window.width; 
double normalizedY = 1.0 - 2.0 * (double)Mouse.getY() / window.height; 

您还可以通过为视口创建逆矩阵并将鼠标输入向量相乘来使用更复杂的解决方案。