基于opengl 三维拾取技术研究

上传人:aa****6 文档编号:38424628 上传时间:2018-05-01 格式:DOC 页数:10 大小:111KB
返回 下载 相关 举报
基于opengl 三维拾取技术研究_第1页
第1页 / 共10页
基于opengl 三维拾取技术研究_第2页
第2页 / 共10页
基于opengl 三维拾取技术研究_第3页
第3页 / 共10页
基于opengl 三维拾取技术研究_第4页
第4页 / 共10页
基于opengl 三维拾取技术研究_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《基于opengl 三维拾取技术研究》由会员分享,可在线阅读,更多相关《基于opengl 三维拾取技术研究(10页珍藏版)》请在金锄头文库上搜索。

1、 http:/更多测绘论文请登录测绘网论文频道查询:更多测绘论文请登录测绘网论文频道查询:http:/ 客服热线:010-基于基于 OpenGLOpenGL 三维拾取技术研究三维拾取技术研究刘彬 孙永 高明 马克 李晓诗(解放军信息工程大学测绘学院 河南郑州陇海中路 66 号 )【摘要】在 OpenGL 环境中,三维场景是通过二维平面表现的,本文通过对这种表现原理的研究,介绍了“射线拾取法”和“包围盒法”两种算法,分析了其实现的原理,并介绍了相关的核心算法。在此基础之上,又提出了一种适用于基于 DEM 的三维系统的改进算法,把三维空间中的拾取问题转化到了二维平面上,大大简化了拾取的抽象性和复杂

2、性,提高了拾取的效率,更易于理解和实现。【关键字】DEM OpenGL 拾取 光标投影模型1.1. 引言引言 在三维图形系统中,现实世界中的物体要依次通过模型视点变换,投影变换和视口变换才影射到屏幕窗口上的,而对物体的拾取操作,其实就是在二维屏幕上对三维空间中的物体的拾取技术。2.2. 射线拾取技术射线拾取技术射线拾取算法是判断由视点发出经屏幕光标的射线是否与目标物体相交。其具体的实现实现方法如下所示:(1) 确定射线的位置及方向,可以通过取得射线与远近两个裁减面的交点来确定。(2) 判断射线与拾取目标是否有交点,因为在射线上,任意一点可以表 示为单位向量(L)与模(len)的乘积,所以交点可

3、以表示为:X= P+L*len ;又因为三角形内的任意一点都可以用变量 u、v 和其三个顶点坐标来确定,其中 00, ,01,则 wnearrwfar 和包围盒不相交,判断结束;4.4. 基于基于 DEMDEM 的三维拾取方法的三维拾取方法基于 DEM 的三维图形系统中,地面模型是在某一参考平面上构建均匀网格,并在的各顶点坐标中加入高度坐标 Z 得到的,它与参考平面具有固定的位置关系。系统中的各种模型的都与 DEM 数据有着固定的位置关系,即与参考也有着固定的位置关系。在进行三维漫游的过程中,虽然改变了视点和透视窗口,但这种相对位置关系是保持固定的,我们可以利用这种关系把三维空间中的拾取问题转

4、化到参考平面上,通过比较参考平面上光标投影和实体包围盒投影的位置关系判断是否进行拾取,其中参考平面的高度 Z 可以通过人机交互设置。4.1 拾取原理及实现拾取原理及实现4.1.1 模型及空间实体模型与参考平面的位置关系Lhttp:/更多测绘论文请登录测绘网论文频道查询:更多测绘论文请登录测绘网论文频道查询:http:/ 客服热线:010-WXWYOL如上图 1-1 所示,世界坐标系下,在 DEM 构建的地形模型中,平面 L 为参考平面,K 为三维空间中某模型的矩形包围盒,它的每个边分别与坐标轴平行4。 参考平面在构建时亦是与坐标平面平行的,这里设置为平面 L(WZ=0) ;平面L平行于 L ,

5、K为 K 与 L的交平面,显然 K为矩形,且其四个顶点坐标的 XY 值与包围盒上对应点的 XY 值相同。4.1.2 建立光标在参考平面上的投影模型建立光标在参考平面上的投影模型光标通过鼠标控制在二维屏幕坐标系上运动。在实现拾取操作时,传统的算法是通过控制具有二维属性的光标实现对三维物体的拾取,拾取的实现算法比较复杂,结合 DEM 模型的特点,可以在三维世界坐标系中构建二维光标的投影模型,把对二维光标三维化,如图 1-2 所示。其实原理如下: 找到从视点 O 出发经光标的射线与视景体远近裁减面 ABCD 和WZ图:1-1 世界坐标系下参考平面与 DEM 模型及实体模型的位置关系http:/更多测

6、绘论文请登录测绘网论文频道查询:更多测绘论文请登录测绘网论文频道查询:http:/ 客服热线:010-A,B,C,D,的交点 P,P,将问题转化到三维世界坐标系中。 视景体内确定一条以远近裁减面交点为端点的线段 P P, 计算线段和参考平面的交点 M,既为光标 M 在参考平面上的投影点, 可以通过交互实现对参考平面高度 Z 的控制,也即实现了投影点在 Z 方向上的自由度。0M,ML在 DEM 构建的地形模型上,我们希望光标的投影模型是在地形表面上移动的,从而达到对地表模型(如树木、房屋、车辆)的拾取操作。本文给出一种 OpengGL 环境中的建立光标投影模的算法,以供参图:1-2 透视场景、屏

7、幕及参考面http:/更多测绘论文请登录测绘网论文频道查询:更多测绘论文请登录测绘网论文频道查询:http:/ 客服热线:010-考:(1) 调用 OpenGL 实用库提供的 gluUnProject 函数得到从视点发出经光标点 M 的射线与远近裁减面的交点 P(Wx,Wy,Wz)P,(Wx,Wy,Wz,) 。gluUnProject 函数具体使用方法如下所示: gluUnProject(GLdouble)xpos , (GLdouble)ypos , 1.0 , mvmatrix , projmatrix , viewport , xpos 和 ypos 是以屏幕左下角为原点的屏幕坐标,1.

8、0 代表返回 zbuffer 为 1.0 处(远剪切面交点)的世界坐标(为 0.1 则表示进裁剪面交点) ,mvmatrix 为视矩阵,通过函数glGetDoublev(GL_MODELVIEW_MATRIX , mvmatrix)得到,projmatrix 为投影矩阵,通过函数glGetDoublev(GL_PROJECTION_MATRIX , projmatrix)得到,viewport 为视口,通过函数glGetIntegerv(GL_VIEWPORT , viewport)得到,剩下的 Wx、Wy、Wz 就是我们要得到的世界坐标系中的交点坐标。(2) 如图 2-3 所示,根据交点 P

9、 P,得到向量 F(WxWx,WyWy,WzWz,) ,并计算其与参考平面 Wz =0 的交点 M,的 x,y 分量,计算公式如下,M,x= Wx+( Wx,Wx)* abs(Wz) /(abs(Wz)+abs(Wz,)M,y= Wy+( Wy,Wy)* abs(Wz) /(abs(Wz)+abs(Wz,)(3) M,z的值可以通过M,x 和 M,y在参考平面上计算得出 M,点所在的 DEM 网格,然后通过查询网格四点高程进行插值运算求得。如此,便可以得到光标在在地形表面的投影模型。4.1.34.1.3 拾取判断拾取判断经过上述步骤,对是否拾取目标物体的判断已经变的非常容易了,我们只需在参考平

10、面上判断光标投影模型的(X,Y)值与包围盒在参考平面上投影的位置关系即可。4.2 存在的问题及改进存在的问题及改进如图 2-4 所示,上面介绍的方法存在以下两个方面的不足:(1) 光标投影模型的运动速率和鼠标的移动速率不匹配, 当光标在屏幕上移动等距的单位时,其在参考平面上的投影移动的距离是不同的,从而导致了投影模型运动的不均匀性,这对我们用鼠标进行控制增加了难度。视点 Ohttp:/更多测绘论文请登录测绘网论文频道查询:更多测绘论文请登录测绘网论文频道查询:http:/ 客服热线:010-(2) 当从视点经光标的射线与参考平面的交角等于零时,就会出现没有交点或有无数交点两种情况,这都不是建立

11、投影模型所预期的,而这种情况因为需要进行场景漫游而不可避免。基于以上考虑,本文总结出一种改进算法,其思想就是把对光标绝对位置在参考平面上的投影转化为光标相对位置在参考平面上的投影。(1) 确定光标投影模型的初始位置,根据人们观察习惯,将光标投影模型的初始位置设置在视口接近底步中央位置,其在世界坐标系下的坐标位置通过调用 gluUnProject 函数来确定从视点发出经屏幕中央的射线与远近裁减面的交点,并求得其与参考平面的交点,即为光标投影模型的初始位置(2) 在响应鼠标滑动信息的函数 OnMouseMove()中设置全局变量(Last_x,Last_y);记录每次函数响应时鼠标的位置信息(Mo

12、use_x,Mouse_y),通过比较前后两次函数响应的鼠标位置关系来确定光标投影模型的移动。使用这种方法,可以避免应用绝对位置投影模型时出现的模型移动不均匀的现象,也不会出现因为由视点和光标确定的射线同参考平面平行而无法建立投影模型的问题了。5.5. 总结总结1-4 光标与其投影模型运动情况的对比图1-4 光标与其投影模型运动情况的对比http:/更多测绘论文请登录测绘网论文频道查询:更多测绘论文请登录测绘网论文频道查询:http:/ 客服热线:010-在基于 DEM 的三维图形系统中,对模型的拾取一般都是为了实现模型的选中,进而达到修改模型的各种属性信息的目的(如纹理,位置,形状) ,所以

13、对拾取的精度要求并不高。本文所介绍的拾取方式利用基于 DEM 的三维图形系统的几何特点,牺牲拾取的精度,简化了拾取算法,提高了拾取的效率,对基于 DEM 的三维图形系统而言,是一种很好的选择。参考文献参考文献1. Alan Watt、Fabio Policarpo. 3D Games real-time Rendering and Software Technology 2. Edward Angel. 交互式计算机图形学基于 OpengGL 的自顶向下的方法. 清华大学出版社 3. Dave Shreiner、Mason Woo,Jackie Neider、Tom Dives. OpenGL

14、 编程指南(第四版).人民邮电出版社 4. 姚继权、李晓豁. 计算机图形学人机交互中三维拾取方法的研究. 工程设计学报, 2004(4) 5. 王剑、谭建荣、陆国栋. 三维场景中图形对象的拾取方法. 计算机技术应用,2004(7)更多测绘论文请登录测绘网论文频道查询:更多测绘论文请登录测绘网论文频道查询:http:/ 我的大学爱情观我的大学爱情观1 1、什么是大学爱情:、什么是大学爱情:大学是一个相对宽松,时间自由,自己支配的环境,也正因为这样,培植爱情之花最肥沃的土地。大学生恋爱一直是大学校园的热门话题,恋爱和学业也就自然成为了大学生在校期间面对的两个主要问题。恋爱关系处理得好、正确,健康,可以成为学习和事业的催化剂,使人学习努力、成绩上升;恋爱关系处理的不当,不健康,可能分散精力、浪费时间、情绪波动、成绩下降。因此,大学生的恋爱观必须树立在健康之上,并且树立正确的恋爱观是十分有必要的。因此我从下面几方面谈谈自己的对大学爱情观。2 2、什么是健康的爱情:、什么是健康的爱情:1) 尊重对方,不显示对爱情的占有欲,不把爱情放第一位,不痴情过分;2) 理解对方,互相关心,互相支持,互相鼓励,并以对方的幸福为自己的满足; 3) 是彼此独立的前提下结合;3 3、什么是不健康的爱情:、什么是不健康的爱情

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号