正文描述:《基于opengl 三维拾取技术研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、http://www.cehuiwang.com基于OpenGL三维拾取技术研究刘彬孙永高明马克李晓诗(解放军信息工程大学测绘学院河南郑州陇海中路66号 ) 【摘要】在OpenGL环境中,三维场景是通过二维平面表现的,本文通过对这种表现原理的研究,介绍了“射线拾取法”和“包围盒法”两种算法,分析了其实现的原理,并介绍了相关的核心算法。在此基础之上,又提出了一种适用于基于DEM的三维系统的改进算法,把三维空间中的拾取问题转化到了二维平面上,大大简化了拾取的抽象性和复杂性,提高了拾取的效率,更易于理解和实现。 【关键字】DEM OpenGL 拾取 光标投
2、影模型 1. 引言在三维图形系统中,现实世界中的物体要依次通过模型视点变换,投影变换和视口变换才影射到屏幕窗口上的,而对物体的拾取操作,其实就是在二维屏幕上对三维空间中的物体的拾取技术。 2. 射线拾取技术 射线拾取算法是判断由视点发出经屏幕光标的射线是否与目标物体相交。其具体的实现实现方法如下所示:(1) 确定射线的位置及方向,可以通过取得射线与远近两个裁减面的交点来确定。(2) 判断射线与拾取目标是否有交点,因为在射线上,任意一点可以表 示为单位向量(L)与模(len)的乘积,所以交点可以表示为:X=P’+L*
3、len;又因为三角形内的任意一点都可以用变量u、v和其三个顶点坐标来确定,其中0
4、)*v=P’.z-T1.z这是一个线性方程组,根据克拉姆法则,当满足条件:00,,0
5、是对其选中后进行如平移、旋转、缩放等编辑工作,所以可以牺牲一部分拾取的精确度,而提高其效率。包围盒技术是基于射线拾取技术的一种更加简单高效的拾取方法,它对每个三维场景中需要进行拾取操作的对象设定一个包围域,这个包围域是能够包围对象的最小矩形,该矩形边与坐标轴是对齐的,其左下顶点的x、y、z坐标值为实体所有顶点相应坐标值的最小值,其右上顶点的坐标值为实体所有顶点相应坐标值的最大值。由此可以大大降低实现拾取功能的复杂性。 3.2包围盒技术的实现方法 如今比较流行的一种包围盒的算法是在视点和鼠标点确定的直线上,找出以近裁减面交点为起点指向远裁减点的向量,求
6、向量各分量和离起点最近的三个包围盒侧面所在平面的交点,如果各分量与平面的交点都在包围盒侧面上或者在包围盒内且在各分量上,则线段wnearwfar和包围盒相交(本文中我们把线段与包围盒相交和线段在包围盒内这两种情况统称为相交)。判断线段与包围盒相对位置的具体步骤如下[5]:(1) 判断起点wnear是否在包围盒内,如果在盒内,则线段wnearrwfar和包围盒相交,判断结束;如果不在盒内,则记下该包围盒离起点wnear最近的三个侧面,这三个侧面必定共点且相互垂直;(2) 过起点wnear向各侧面做垂线,得到三个垂足,连接点
7、wnear和各垂得到三个向量A1、A2、A3,并求A1、A2、A3和向量wnearrwfar各相应分量的比值ti=Ai/wnearrwfar(i=1,2,3)。如果wnearrwfar的某个分量为零,则比值取一1。取t1、t2、t3中的最大值为tmax,如果tmax<0或tmax>1,则wnearrwfar和包围盒不相交,判断结束; 4. 基于DEM的三维拾取方法 基于DEM的三维图形系统中,地面模型是在某一参考平面上构建均匀网格,并在的各顶点坐标中加入高度坐标Z得到的,它与参考平面具有固定的位置关系。系统中的各种模型的都与DEM数据有着固定的
8、位置关系,即与参考也有着固定的位置关系。在进行三维漫游的过程中,虽然改变了视点和透视窗口,但这种相对位置关系
显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。