将鼠标侦听器添加到GL空间内的对象

时间:2011-05-18 18:58:21

标签: java opengl mouseevent jogl

作为我正在编写的游戏的一部分,我有一个纹理地平面,目前实现为四边形。

我需要能够听取鼠标点击并将其坐标指向地平面。

我可以轻松实现一个返回视图空间内坐标的监听器。但是,视点是可移动的,因此视图空间中的像素并不总是对应于地平面上的相同坐标。

是否可以为四元组实现鼠标侦听器?

否则,是否有一个替代的平面实现,它允许我纹理平面并监听鼠标事件。

非常感谢任何建议!

2 个答案:

答案 0 :(得分:0)

我想到的第一件事就是阅读你的问题(Picking)。但由于你只有一个四边形,你将无法确定四边形内的位置。

另一个解决方案是在OpenGL范围之外解决这个问题并计算光线和四边形的交集。要确定从视点到场景的光线,您仍然需要OpenGL上下文。

答案 1 :(得分:0)

OpenGL只是将内容绘制到屏幕上。特别是它绘制点,线,三角形,四边形和凸面平面多边形。设置像素后,OpenGL对其绘制的内容没有持久性。

您正在考虑的术语称为场景图,但OpenGL不是这样的。

但是你当然可以实现一个使用OpenGL绘制内容的场景图,这个场景图可以实现事件管理并将事件监听器关联到它绘制的内容。