基于Opengl的屏幕对象拾取 毕业论文(2)
1 绪论
目前许多优秀的图形工具能为我们绘制惟妙惟肖的虚拟现实场景,在面对这些场景时候我们除了欣赏之外更多的是希望能与之互动,做为编程人员可以使用代码轻松的重新构造场景,但对于终端用户而言,他们也希望自己也能对造场景进行一些操作,如添加,删除等等。对于这些操作而言,首先我们要做的是能让用户使用鼠标来选择他所希望操作的对象,这就是本文要讨论的一个重点:拾取,这是一种在许多交互性程序中有基础地位的操作,是对屏幕中对象进行定位,并确定所选择的是哪个物体。然而该操作给我们提出了一些难题,首先,需要对对象进行届定。其次,必须对“拾取目标”进行定义。这就需要终端用户确定单击的位置是构成对象的图元上,还是对象附近的位置以及考虑如果选取点落在两个以上物体交集部分如何处理等等问题,本文利用了OpenGL中的选择模式进行有效的对象判别和拾取。 1.1 课题的目的和意义
图形对象的拾取是计算机图形处理系统中一个重要的功能,很多图形系统需要用户通过输入设备与系统交互,如移动、旋转某个物体,或查询某个物体的状态信息,需要通过拾取来确定景中的操作对象。快速可靠的拾取被广泛地运用于各种系统中,如实时图形系统、虚拟现实、游戏和CAD系统等方面,拾取操作己成为这些系统的重要部分,它在计算机建模软件尤其重要,能够通过拾取操作对模型进行局部修改和编辑,提高建模系统的灵活性和适用性。随着计算机软硬件的快速发展,人们对实时系统的交互的实时性要求也越发苛刻,而且三维场景复杂度也日益提高,这就要求系统提供快速的拾取操作。因此,高效的拾取算法能够决定拾取操作快与慢的关键所在,从而开发高效的拾取算法已成为当今一个的课题研究。 1.2 拾取技术国内外研究
随着网络科技越来越发达,拾取操作也越来越方便了,有的只要鼠标点点就可以。而拾取操作的关键是拾取算法。到目前为止,拾取算法大致上可以分三种。第一种是基于射线求交的拾取技术,1992年,Mark Segul,Carl Korobkin,Rolf van Widenfelt等人首次采用了基于射线求交的拾取
[1]
技术原理实现了对衣服的拾取;1998年Michael Deering,Step hanie Winner and Bic Schediwy
[2]
等也才采用了同样的技术成功做到了人物的拾取;2005年,龚堰珏,颜敏等人采用了基于射线求
[3]
交的拾取技术实现对几个简单物体的拾取;同年,韦宇炜也是用此技术实现对游戏中各类的拾取,
[4]
如对技能的释放,对地上物品的捡起来,对别的玩家人物属性的查看等等;2006年,姚继权,李
[5]
晓豁等人也采用了这种拾取技术成功地做到了对3D网游游戏中的各种各样的拾取,等等。第二种是基于GPU的重绘式拾取技术,这种方法对硬件的依赖性大,不过拾取速度快。1997年,Masaaki.Oka,Kyoya Tsutsui,Akio Ohba等人第一次采用了基于GPU的重绘式拾取技术在房子中拾取到了房子主
[6]
人与小孩子;2006年,刘力强,周明全等多人采用基于GPU的重绘式拾取技术,在大规模室外地
[7]
形中拾取到了地面某个区域。第三种是OpenGL自带的拾取机制,1992年7月,SGI公司发布了OpenGL的1.0版本,随后又与微软公司共同开发了Windows NT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件也可以在微机上运用。1995年OpenGL的1.1版本面市,该版本较1.0性能提高许多,并加入了一些新的功能,如本身自带的拾取机制,这项功能
[8]
使OpenGL在各个领域都得到了应用。随后出现的各个版本,使自带的拾取机制越来越完善,操作越来越方便,应用范围越来越广泛。 1.3 本文研究的主要内容
(一):综述本课题研究的意义以及国内外研究现状;
(二):介绍了OpenGL与OpenGL渲染管道,分析MFC编程框架和基于OpenGL+MFC的三维模拟的编程环境配置;
(三):各种拾取技术的实现原理,优缺点;
(四):采用了OpenGL本身自带的拾取机制设计并实现简单的拾取操作;
3
(五):总结本文并进一步给出了展望。
4
2 基于OpenGL+MFC的建模基础
2.1 OpenGL概括
OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程软件接口的规格,该接口包括了大约250个不同的函数(其中核心OpenGL大约包括200个函数,另外还有50个左右位于OpenGL工具函数库),可以用这些函数指定物体和操作,创建交互性三维应用程序。它是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库,Opengl用于三维图象(二维的亦可)。
OpenGL的设计目标就是作为一种流线型的、独立于硬件的接口,可以在许多不同的硬件平台上实现。为了实现这个目标,OpenGL并未包含用于执行窗口任务或者获取用户输入之类的函数。反之,必须通过窗口系统控制所使用的特定硬件。类似地,OpenGL并没有提供用于描述三维物体模型的高层函数。这类函数可能允许你指定相对较为复杂的形状,例如汽车、身体的某 个部位、飞机或分子等。在OpenGL中,必须根据少数几个基本几何图元(geometric primitive)(如点、直线和多边形)来创建你所需要的模型。当然,我们可以在OpenGL上创建能够提供这些特性的高级函数库。OpenGL 实用函数库(GLU)提供了许多建模特性,例如二次曲面以及NURBS曲线和表面。GLU是所有OpenGL实现的一个标准组成部分。
1992年7月,SGI公司发布了OpenGL的1.0版本,随后又与微软公司共同开发了Windows NT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件也可以在微机上运用。
1995年OpenGL的1.1版本面市,该版本较1.0性能提高许多,并加入了一些新的功能。 1997年,Windows 95下3D游戏的大量涌现,游戏开发公司迫切需要一个功能强大、兼容性好的3D图形接口,而当时微软公司自己的3D图形接口DirectX 3.0功能却是很糟糕。因而以制作《雷神之锤》等经典3D射击游戏而著名的id公司同其它一些游戏开发公司一同强烈要求微软在Windows95中加入对OpenGL的支持。微软公司最终在Windows95的OSR2版和后来的Windows版本中加入了对OpenGL的支持。这样,不但许多支持OpenGL的电脑3D游戏得到广泛应用,而且许多在3D图形设计软件也可以运用支持OpenGL标准的3D加速卡,大大提高其3D图形的处理速度。
2003年的7月28日,SGI和ARB公布了OpenGL 1.5。OpenGL 1.5中包括OpenGL ARB的正式扩展规格绘制语言“OpenGL Shading Language”。
2004年8月,OpenGL2.0版本发布OpenGL 2.0标准的主要制订者并非原来的SGI,而是逐渐在ARB中占据主动地位的3Dlabs。
2008年8月初Khronos工作组在Siggraph 2008大会上宣布了OpenGL 3.0图形接口规范,GLSL1.30 shader语言和其他新增功能将再次未来开放3D接口发展指明方向。
2009年3月又公布了升级版新规范OpenGL 3.1,也是这套跨平台免费API有史以来的第九次更新。
2009年8月Khronos小组发布了OpenGL 3.2,这是一年以来OpenGL进行的第三次重要升级。 Khronos旗下的OpenGL ARB(Architecture Review Board)工作组推出了GLSL 1.5OpenGLShading Language(OpenGL着色语言)的升级版,以及在OpenGL3.2框架下推出了两个新功能,可以让开发者在开发新程序时能够在使用流水线内核特性或兼容性特性之间做出选择,其中兼容性特性会提供与旧版OpenGL之间的兼 …… 此处隐藏:4088字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [综合文档]应答器设备技术规范(征求意见稿)A1
- [综合文档]教师 2012年高考政治试题按考点分类汇
- [综合文档]保险公司的总经理助理竞职演说
- [综合文档]卫生应急大练兵大比武活动考试--题库(
- [综合文档]徐州经济技术开发区总体规划环境影响报
- [综合文档]汉语拼音表(带声调)
- [综合文档]二年级 上 思维训练( 1~18)
- [综合文档]特色学校五年发展规划
- [综合文档]机床经常出现报警“X1轴定位监控”
- [综合文档]《电子技术基础》21.§5—2、3、4 习题
- [综合文档]浙江省深化普通高中课程改革
- [综合文档]CRISP原理 - 图文
- [综合文档]2017年电大社会调查研究与方法形考答案
- [综合文档]浅析建筑施工安全毕业论文
- [综合文档]《回忆我的母亲》名师教案
- [综合文档]装饰装修工程监理规划
- [综合文档]三下乡心得体会-文艺
- [综合文档]柱计算长度系数 - 图文
- [综合文档]全流程思考,提高燃电系统热电转换率--
- [综合文档]2018年嘉定区中考物理一模含答案
- 433M车库门滚动码遥控器
- 8、架空线路施工规范
- 大学四年声乐学习的体会
- 新北师大版五年级数学上册《轴对称再认
- 部编版五年级上册语文第六单元小结复习
- 小学六年级英语形容词用法
- 第2课 抗美援朝保家卫国 课件01(岳麓版
- 2015年天津大学运筹学基础考研真题,考
- 微机计算机控制技术课后于海生(第2版)
- 安全教育实践活动
- Delphi程序设计教程_第1章_Delphi概述
- 第八讲 工业革命与启蒙运动
- 《中华人民共和国药典》2005年版二部勘
- 科粤版九年级化学2.3构成物质的微粒(1)
- 西师大版数学三年级下册《长方形、正方
- ch6_冒泡排序演示
- 第4章 冲裁模具设计
- 浙江中小民营企业员工流失论文[终稿]
- 再议有线数字电视市场营运模式
- 昆明供水工程监理大纲




