- 1
- 0
- 约2.84万字
- 约 24页
- 2017-06-11 发布于北京
- 举报
第一章 交互式三维图形软件开发系统
为什么要研制基于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,
您可能关注的文档
最近下载
- SY_T 5333-2023 钻井工程设计规范.pdf VIP
- 深度解析(2026)《SYT 5946-2019钻井液用包被抑制剂 聚丙烯酰胺钾盐》.pptx VIP
- 卧式储罐体积容积计算(带公式).xls VIP
- 深度解析(2026)《SYT 5661-2019钻井液用增粘剂 丙烯酰胺类聚合物》.pptx VIP
- SY_T 5061-2020 钻井液用石灰石粉.docx VIP
- 深度解析(2026)《SYT 5677-2019钻井液用滤纸》.pptx VIP
- ICU常用药物中英文对照一览表.doc VIP
- 心血管常用名词缩写和心血管常用药物英汉对照.pdf VIP
- ISO9001 质量管理体系全套(质量手册+程序文件+表格记录全套).doc VIP
- 深度解析(2026)SYT 5794-2010《钻井液用沥青类评价方法》:从标准解读到未来油田化学智能化应用的战略前瞻.pptx VIP
原创力文档

文档评论(0)