[英]Adding a mouse listener to an object within a GL space
作为我正在编写的游戏的一部分,我有一个纹理化的地平面,目前已实现为四边形。
我需要能够听到鼠标的点击并将其坐标指向地面。
我可以轻松实现一个侦听器,该侦听器返回视图空间内的坐标。 但是,视点是可移动的,因此视图空间中的像素并不总是对应于地平面上的相同坐标。
是否可以为Quad实现鼠标侦听器?
否则,是否有替代的平面实现,使我可以构造平面纹理并侦听鼠标事件。
任何建议,不胜感激!
我想到阅读您的问题的第一件事是( Picking )。 但是由于您只有一个四边形,所以您将无法确定该四边形内的位置。
另一个解决方案是在OpenGL范围之外解决此问题,并计算射线与四边形的交点。 为了确定从视点到场景的光线,您仍然需要OpenGL上下文。
OpenGL只是将内容绘制到屏幕上。 特别是它绘制点,线,三角形,四边形和凸平面多边形。 设置像素后,OpenGL就不再保留其绘制的内容。
您所考虑的术语称为场景图 ,但OpenGL并非如此。
但是,您当然可以实现使用OpenGL绘制场景的场景图,并且该场景图可以实现事件管理并将事件侦听器与其绘制的内容相关联。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.