- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OpenGL(Open Graphics Library)定义了一个跨编程语言、跨平台的编程接口的规格,是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。它是行业领域中最为广泛接纳的 2D/3D 图形 API, 其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。它是独立于视窗操作系统或其它操作系统的,亦是网络透明的。在包含CAD、内容创作、能源、娱乐、游戏开发、制造业、制药业及虚拟现实等行业领域中,OpenGL帮助程序员实现在 PC、工作站、超级计算机等硬件设备上的高性能、极具冲击力的高视觉表现力图形处理软件的开发。
一、图形标准OpenGL及其高级开发工具
图形标准在图形领域有着重要的地位,是很多大公司与机构争夺的法宝。历史上曾出现的图形标准有Core、GKS、PHIGS、PEX、GL、Dore、RenderMan、Hoops、OpenGL等等。经过了竞争与淘汰,目前OpenGL占据了领导地位,成为国际上公认的3D图形工业标准。SGI公司是赢家,它于1990年着手研制OpenGL。1992年OpenGL体系结构委员会制定了1.0规范,1995年推出1.1规范。1998年OpenGL 1.2在SGI平台实现。OpenGL及其应用程序已在Unix与PC平台得到广泛的应用。
图形标准存在显而易见的优点:它不仅加速了3D应用程序的开发,而且使应用程序的可移植性更好。但是标准亦存在着缺点,Andries Van Dam 指出:“标准是很多人经过多年的努力共同创建的,它的规范与实现总是落后于最新技术。经验表明,绝大多数领域最先进的设计都是极小数精英小组创作的,但是标准却是一个庞大委员会的技术、政治折衷的产物”[Dam 1998]。
OpenGL的发展已近10年,从1.0版本到1.2版本在功能上并无显著的变化。在开发交互式3D图形应用程序方面,OpenGL存在明显的不足:
(1)OpenGL与窗口系统无关,不提供任何交互手段,必须由程序员自己编写所有的交互功能。
(2)OpenGL应用程序性能的优化是程序员面临的一大困难。OpenGL的API(编程接口)非常灵活,不仅针对硬件与软件的优化方法多而相异,即便对于同一数据结构或算法,如果代码的组织不同亦会产生显著的性能差异。
(3)OpenGL 的API是低级的C函数,不提供可复用的对象库或者应用程序框架,开发效率不高。
以上几点表明,除非开发人员既精通图形系统又精通窗口系统的编程,否则难以开发出较好的基于OpenGL的交互式3D应用程序。由于标准不能被轻易创建与修改,它往往跟不上技术的发展与市场的变化。而3D图形是迅猛发展的领域,为了克服这个困难,人们往往在图形标准之上再建立更高级的开发工具(3D Toolkit或3D Engine)。
基于OpenGL的著名的开发工具有:
1、Open Inventor
Open Inventor 是从SGI的Iris Inventor发展而来,适合于开发面向对象的交互式3D图形应用程序。其核心是围绕 Scene Graph的庞大的C++ 类库,它提供场景编辑、交互式绘制、文件输入输出等功能以及相应的图形用户界面。Open Inventor是通用的商业化软件,由Open Inventor体系结构委员会制定标准,可以在多个平台运行。PC平台的Open Inventor由TGS公司开发与销售。[Wernecke 1994] [Wang 1997]
Open Inventor的基本特征是“大而全”,如果你只要开发很小的3D应用程序,使用Open Inventor就象让相扑运动员去干针线活那样笨。
2、Iris Performer
Iris Performer 是高性能实时3D图形开发系统,由SGI公司研制,专用于SGI的高档图形工作站。Iris Performer 提供高层的场景结构,支持多CPU、场景多层次细节(LOD)管理。不提供用于3D交互的图形用户界面。[Rohlf 1994]
Iris Performer我只听说过但没有亲手用过。总统套房好是好,可老百姓住不起。
3、OpenGL Optimeizer/Cosmo3D
OpenGL Optimeizer/Cosmo3D 是面向大型CAD/CAE与可视化应用的开发系统,由SGI公司研制。它可以将大型复杂的造型简化,并快速地绘制。但由于该产品推出的时间不长,短期内难以被广泛采纳。[Paul 1997]
所有的新产品都说自己好并且对用户“必不可少”,但用户总免不了疑神疑鬼,还是等它成熟了再用。
4、GLUT
GLUT 的核心是个小型的C函数库,这些函数可以创建OpenGL窗口、弹出菜单、响应鼠标事件,并可以绘制简单的常见几何形体。GLUT 可在X-Window, Window
文档评论(0)