三维图形程序设计基础-程序员.DOC

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三维图形程序设计基础-程序员

第一章 交互式三维图形软件开发系统 为什么要研制基于OpenGL的交互式三维图形软件开发工具Intra3D 2.0 ? 本章开头两节将解答这个问题。 软件工程的主要目标是提高质量与生产率,如果没有软件工程思想方法的指导,Intra3D 2.0的设计、编程、扩展等工作可能会陷入混乱的困境。1.3节论述了软件的质量因素,以及提高质量与生产率的三种基本策略:“复用”、“分而治之”和“优化—折衷”。 本章重点是Intra3D 2.0的系统设计,主要从“体系结构设计”、“模块化设计”、“数据结构与算法设计”、“用户界面设计美学”和“程序设计风格”五个方面论述。 1.1 图形标准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的著名的开发工具有: 一、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就象让相扑运动员去干针线活那样笨。 二、Iris Performer Iris Performer 是高性能实时3D图形开发系统,由SGI公司研制,专用于SGI的高档图形工作站。Iris Performer 提供高层的场景结构,支持多CPU、场景多层次细节(LOD)管理。不提供用于3D交互的图形用户界面。[Rohlf 1994] Iris Performer我只听说过但没有亲手用过。总统套房好是好,可老百姓住不起。 三、OpenGL Optimeizer/Cosmo3D OpenGL Optimeizer/Cosmo3D 是面向大型CAD/CAE与可视化应用的开发系统,由SGI公司研制。它可以将大型复杂的造型简化,并快速地绘制。但由于该产品推出的时间不长,短期内难以被广泛采纳。[Paul 1997] 所有的新产品都说自己好并且对用户“必不可少”,但用户总免不了疑神疑鬼,还是等它成熟了再用。 四、GLUT GLUT 的核心是个小型的C函数库,这些函数可以创建OpenGL窗口、弹出菜单、响应鼠标事件,并可以绘制简单的常见几何形体。GLUT 可在X-Window,

文档评论(0)

wumanduo11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档