使用 OpenGL 实现三维坐标的鼠标拣选
使用 OpenGL 实现三维坐标的鼠标拣选
opengl 2008-05-05 19:07 阅读 1244评论 1
字号: 大 中 小
本文提出并实现一种用于三维坐标拣选的 RIP(Ray-Intersection-Penetration)方法。介绍了
如何在已经渲染至窗口的三维场景中,使用鼠标或者相关设备拣选特定三维对象的方法。此方法对于正交
投影或透视投影均有效,相对于 OpenGL 自带的选择与反馈机制,本方法无论是拣选精度还是算法实现
效率均高出许多,是一种比较通用的解决方案。
关键词(Keywords)
正交投影(Ortho-Projection)、透视投影(Perspective-Projection)
世界坐标系、屏幕坐标系、三维拣选、OpenGL
一、简介(Introduction)
OpenGL 是一种比较“纯粹”的 3D 图形 API,一般仅用于三维图形的渲染,对于特定领域的开发
者(如游戏开发者)而言,如果选择使用 OpenGL 进行开发,类似碰撞检测的机制就都需要自行编写了 。
但是由于鼠标在图形程序中的应用非常非常之广泛(例如现在已经很少有 PC 游戏能完全地脱离鼠标),
OpenGL 在图形库的基础上添加了选择与反馈机制(Select & Feedback)来满足用户使用鼠标实时操作
三维图形的需要。但由于种种原因,我们需要更为特殊的选择机制以满足特定需求,在这里我们提出了一
种简单迅速的 RIP(Ray-Intersection-Penetration)方法,可以满足绝大多数典型应用的需要。
评论7