交互式三维图形软件开发系统

上传人:枫** 文档编号:507643016 上传时间:2022-11-01 格式:DOC 页数:24 大小:285KB
返回 下载 相关 举报
交互式三维图形软件开发系统_第1页
第1页 / 共24页
交互式三维图形软件开发系统_第2页
第2页 / 共24页
交互式三维图形软件开发系统_第3页
第3页 / 共24页
交互式三维图形软件开发系统_第4页
第4页 / 共24页
交互式三维图形软件开发系统_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《交互式三维图形软件开发系统》由会员分享,可在线阅读,更多相关《交互式三维图形软件开发系统(24页珍藏版)》请在金锄头文库上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! 第一章 交互式三维图形软件开发系统为什么要研制基于OpenGL的交互式三维图形软件开发工具Intra3D 2.0 ? 本章开头两节将解答这个问题。软件工程的主要目标是提高质量与生产率,如果没有软件工程思想方法的指导,Intra3D 2.0的设计、编程、扩展等工作可能会陷入混乱的困境。1.3节论述了软件的质量因素,以及提高质量与生产率的三种基本策略:“复用”、“分而治之”和“优化折衷”。本章重点是Intra3D 2.0的系统设计,主要从“体系结构设计”、“模块化设计”、“数据结构与算法设计”、“用户界面设计美学”和“程序设计风格”五个方面论述。1.

2、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平台得到广泛的应用。图形标准存在显而易见的优点:它不仅加速了

3、3D应用程序的开发,而且使应用程序的可移植性更好。但是标准亦存在着缺点,Andries Van Dam 指出:“标准是很多人经过多年的努力共同创建的,它的规范与实现总是落后于最新技术。经验表明,绝大多数领域最先进的设计都是极小数精英小组创作的,但是标准却是一个庞大委员会的技术、政治折衷的产物”Dam 1998。OpenGL的发展已近10年,从1.0版本到1.2版本在功能上并无显著的变化。在开发交互式3D图形应用程序方面,OpenGL存在明显的不足:(1)OpenGL与窗口系统无关,不提供任何交互手段,必须由程序员自己编写所有的交互功能。(2)OpenGL应用程序性能的优化是程序员面临的一大困难

4、。OpenGL的API(编程接口)非常灵活,不仅针对硬件与软件的优化方法多而相异,即便对于同一数据结构或算法,如果代码的组织不同亦会产生显著的性能差异。(3)OpenGL 的API是低级的C函数,不提供可复用的对象库或者应用程序框架,开发效率不高。以上几点表明,除非开发人员既精通图形系统又精通窗口系统的编程,否则难以开发出较好的基于OpenGL的交互式3D应用程序。由于标准不能被轻易创建与修改,它往往跟不上技术的发展与市场的变化。而3D图形是迅猛发展的领域,为了克服这个困难,人们往往在图形标准之上再建立更高级的开发工具(3D Toolkit或3D Engine)。基于OpenGL的著名的开发工

5、具有:一、Open InventorOpen Inventor 是从SGI的Iris Inventor发展而来,适合于开发面向对象的交互式3D图形应用程序。其核心是围绕 Scene Graph的庞大的C+ 类库,它提供场景编辑、交互式绘制、文件输入输出等功能以及相应的图形用户界面。Open Inventor是通用的商业化软件,由Open Inventor体系结构委员会制定标准,可以在多个平台运行。PC平台的Open Inventor由TGS公司开发与销售。Wernecke 1994 Wang 1997Open Inventor的基本特征是“大而全”,如果你只要开发很小的3D应用程序,使用Ope

6、n Inventor就象让相扑运动员去干针线活那样笨。二、Iris PerformerIris Performer 是高性能实时3D图形开发系统,由SGI公司研制,专用于SGI的高档图形工作站。Iris Performer 提供高层的场景结构,支持多CPU、场景多层次细节(LOD)管理。不提供用于3D交互的图形用户界面。Rohlf 1994Iris Performer我只听说过但没有亲手用过。总统套房好是好,可老百姓住不起。三、OpenGL Optimeizer/Cosmo3DOpenGL Optimeizer/Cosmo3D 是面向大型CAD/CAE与可视化应用的开发系统,由SGI公司研制。

7、它可以将大型复杂的造型简化,并快速地绘制。但由于该产品推出的时间不长,短期内难以被广泛采纳。Paul 1997所有的新产品都说自己好并且对用户“必不可少”,但用户总免不了疑神疑鬼,还是等它成熟了再用。四、GLUTGLUT 的核心是个小型的C函数库,这些函数可以创建OpenGL窗口、弹出菜单、响应鼠标事件,并可以绘制简单的常见几何形体。GLUT 可在X-Window, Windows NT, OS/2等系统下运行,特别适合于开发不需要复杂界面的OpenGL示例程序。GLUT的源程序是公开的,并且提供了百余个出色的示例程序,可帮助用户进一步了解OpenGL。Paul 1997 Kilgard 19

8、96GLUT可爱得象南方的小葱,但是派不上大用场。另外,SGI与Microsoft合作的“Fahrenheit计划”,将综合OpenGL、Direct3D、Open Inventor、Optimeizer/Cosmo3D的优点,创建更优秀的图形与可视化开发系统。可是雷打了两年多,就是不下雨。我在博士入学的第一年就看到了这计划,一直到毕业都没见到产品,幸好我没有干等着。Fahrenheit 1.2 Intra3D 2.0的研制背景由于Open Inventor在Unix与PC平台得到了广泛的应用,被誉为是交互式3D开发工具的“事实标准”。但显然没有一个3D开发工具能满足所有的应用需求,3D的广泛

9、应用需要更多的开发工具支持。目前在Internet上可以搜索到的各种用途的3D Engine有500多个Engines,Open Inventor可以更精确地归类于“object oriented drawing and document editing system” Kochhar 1996。随着计算机图形技术与网络技术的迅猛发展,两者的结合势在必行。在商业、科研、教育、娱乐等领域,用于分布式虚拟环境(Distributed Virtual Environments, DVEs)和支持协同工作(Computer Supported Cooperative Work, CSCW)的图形系统已

10、成为研究与应用的热点Barton 1999 Pendergast 19999。著名的DVEs系统有DIVE、dVS、MR、Repo-3D等MacIntyre 1998。但是这些DVEs系统缺乏3D开发工具的交互式图形功能以及通用性,而通用的3D开发工具如Open Inventor则又不支持分布式计算和协同工作。由于在窗口系统、图形支撑库、编程语言等方面存在差异,上述DVEs系统和3D开发工具难以方便地结合使用。为了紧跟发展潮流,我们从国情出发,多方面分析了3D的需求及软硬件条件研制完成了自主版权、运行于PC平台的“交互式协同式三维图形软件开发系统与数据流可视化平台”林锐 2000b,如图1.1

11、所示,其中:(1)Intra3D 2.0是基于OpenGL的交互式三维图形软件开发工具,可用于快速开发Window 9X/NT下的交互式三维图形应用软件。(功能示例见彩图16)(2)DVL 2.0是基于OpenGL的数据可视化工具库(Data Visualization Lib),主要用于绘制科学计算数据和商业统计图形。结合Intra3D 2.0和DVL 2.0可以快速开发交互式数据可视化应用软件。(3)CNC 2.0是用于协同工作的网络通讯开发系统(Cooperative Network Communicator),其核心是支持“发布订阅模式”和“数据流模式”的类库。结合Intra3D 2.

12、0、DVL 2.0和CNC 2.0,可以快速开发支持协同工作的交互式三维图形与数据可视化应用软件。(4)GIVE+ 是“分布式数据流可视化平台”。用户从GIVE+ 中选取模块,以“搭积木”的方式将各个模块用数据流连接起来,之后用户就可以直观地控制这些模块的运行。如果用户在GIVE+ 中找不到需要的模块,可以使用Intra3D 2.0、DVL 2.0和CNC 2.0来开发该模块,把开发完成的模块添加到GIVE+的模块库中即可。(功能示例见彩图7、8、9)通用可视化平台 GIVE与GIVE +应用环境用于协同工作的网络通讯开发系统CNC 2.0数据可视化工具库 DVL 2.0交互式三维图形软件开发

13、工具 Intra3D 2.0开发工具国际图形标准 OpenGL支撑PC + Windows 9X/NT平台图1.1 交互式协同式的三维图形软件开发系统与数据流可视化平台图1.1的方案充分体现了“大规模复用”和“分而治之”的软件工程思想(见1.3.节)。如果按工作量划分比例,那么Intra3D 2.0 约占40%,DVL 2.0约占10%,CNC 2.0约占25%,GIVE+ 约占25%。Intra3D 2.0 是上述方案中最重要的软件开发工具。在设计Intra3D 2.0时,我们分析过百余个OpenGL应用程序,借鉴了Open Inventor与Optimeizer/Cosmo3D的设计优点。

14、以下是Intra3D 2.0与Open Inventor的主要不同点:(1)体系结构不同。Open Inventor是围绕Scene Graph开发的,可称大而全,但其很多功能在图1.1方案中不实用也不必需。Intra3D 2.0分四层设计,每层少而精,扩展灵活,切合图1.1的方案。(2) Intra3D 2.0提供C+类库与COM(Component Object Model)库,支持Visual C+、Visual Basic、Delphi编程。这种多语言编程是现代PC应用开发的一个特征。而Open Inventor是从SGI的IRIS Inventor发展而来的,由于需求背景不同,Ope

15、n Inventor不具备Intra3D 2.0这种特征。(3)Intra3D 2.0是个免费软件,所有源代码向用户开放。Intra3D 2.0的内核用Visual C+ 编写,其C+类库与COM库各有60余个模块,共有7万多行代码。由于Intra3D 2.0是分层设计的,用户可以方便地修改内核以适应不同的需求。Open Inventor是商业软件,不免费、不公开源代码。1.3 软件工程思想本节讲述指导Intra3D 2.0系统设计的软件工程思想林锐 2000a。软件工程的目标是提高软件的质量与生产率,最终实现软件的工业化生产。质量是软件需求方最关心的问题,用户即使不图物美价廉,也要求个货真价

16、实。生产率是软件供应方最关心的问题,老板和员工都想用更少的时间挣更多的钱。质量与生产率之间有着内在的联系。高生产率必须以质量合格为前提。如果质量不合格,对供需双方都是坏事情。从短期效益看,追求高质量会延长软件开发时间并且增大费用,似乎降低了生产率。从长期效益看,高质量将保证软件开发的全过程更加规范流畅,大大降低了软件的维护代价,实质上是提高了生产率,同时可获得很好的信誉。质量与生产率之间不存在根本的对立,好的软件工程方法可以同时提高质量与生产率。对开发人员而言,如果非得在质量与生产率之间分个主次,那么应该是质量第一,生产率第二。这是因为:(1)质量直接体现在软件的每段程序中,高质量自然是开发人员的技

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 国内外标准规范

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