


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、前 言开发交互式三维图形程序是充满乐趣和富有挑战性的工作。随着图形标准OpenGL在Unix与PC平台的广泛应用,越来越多的3D应用程序采用OpenGL作为支撑库。OpenGL提供了数百个库函数,可方便地绘制具有真实感的3D图形。但是对于一个完整的交互式3D应用程序,图形的绘制只是一部分内容。更多的工作集中在场景数据结构、3D交互算法和3D用户界面的设计中。由于OpenGL并不提供此类编程接口,因此开发交互式3D应用程序的技术难度较大。本书全面论述了基于OpenGL与Windows的交互式三维图形技术以及程序设计。与本书配套的软件是交互式三维图形软件开发工具Intra3D 2.0。Intra3
2、D 2.0是免费软件,可用于快速开发PC平台的交互式3D应用程序。其核心是集成了场景数据结构、3D交互算法和3D用户界面的C+类库与COM对象库,支持Visual C+、Visual Basic、Delphi等语言的应用编程。两个库各有60余个程序模块,7万多行源程序全部公开,用户可以方便地修改Intra3D的内核以适应不同的需求。本书共分七章。前五章详细论述Intra3D 2.0核心库的开发,后两章讲述如何使用Intra3D 2.0的C+类库与COM对象库来开发应用程序。本书所有的程序、数据、文档均可在Intra3D 2.0标准版软件中找到。各章要点如下:第一章 交互式三维图形软件开发系统。
3、主要讲述Intra3D 2.0的设计方案和软件工程方法。Intra3D体系结构分四层设计,第一层为“基础对象与算法”, 第二层为“图形对象”, 第三层为“场景图与节点”, 第四层为“绘制与交互”。第二章 基础对象与算法。主要讲述:用于图形变换的矢量、矩阵、四元组运算;鼠标跟踪球算法;二维点阵字体与三维矢量字体的绘制;读取BMP、GIF、JPEG、SGI与TGA格式的数字图像;常用几何图元的绘制;“对象引用计数”的内存管理技术;材质对象与纹理对象的设计。第三章 图形对象。主要讲述三类图形对象的设计:(1)多边形模型对象,用于绘制Autodesk公司的.3ds模型以及Wavefront公司的.ob
4、j模型。(2)商业统计图形对象,用于绘制柱形图、带状图、折线图、条形图等。(3)常用几何模型对象,用于绘制长方体、锥体、圆柱体、球体、圆环体等图形。第四章 场景的节点与数据结构。主要讲述Scene Graph与节点的概念,以及形体节点、相机节点、光源节点、组节点的设计。节点基类的设计是本章重点。第五章 场景绘制与交互。主要讲述场景视窗SceneView、OpenGL简单视窗Window3D以及3D程序常用对话的设计。SceneView是Intra3D最复杂的程序,本章详细讲述SceneView的窗口消息处理、场景绘制与动画、三维交互以及相应ActiveX控件的开发。第六章 用Visual C+
5、 编写交互式三维图形程序。讲述如何使用Viusal C+和Intra3D 2.0 C+类库来开发交互式3D应用程序。四个示例程序均取自Intra3D 2.0标准版软件。第七章 用Visual Basic 编写交互式三维图形程序。讲述如何使用Viusal Basic和Intra3D 2.0 COM对象库来开发交互式3D应用程序。四个示例程序均取自Intra3D 2.0标准版软件。附录A讲述OpenGL应用程序性能优化的方法。附录B为Intra3D 2.0的软件说明书。程序员总有自己偏爱的工作,作者从本科三年级起开始编写图形程序,至今已有八年。期间设计过统计分析图形软件、图形用户界面开发系统、集成
6、电路版图可制造性分析软件、三维图形软件开发工具等软件,现在仍乐此不疲。Intra3D早期版本曾获首届中国大学生电脑大赛软件展示一等奖。我自以为在图形软件设计方面应该比较出色了,但这种个人愿望并不等于事实。有一次,当我用一年时间完成一个近10万行代码的软件时,我内心得意表面谦虚地向一个真真的软件高手请教。他竟在十几分钟内就指出多处重大设计错误,使我目瞪口呆地意识到这个软件的价值为零。在沮丧和心痛之后,我用了半年时间温习软件设计的基础知识,学会了客观地看待软件作品,不敢再有浮夸和骄傲。由于是讲述自己的作品,本书不免要强调Intra3D 2.0的一些优点,但读者、用户应该了解其缺点。Intra3D软
7、件是作者在学校里闭门造车开发出来的,它存在两大缺点:一是需求不明确,使软件内容泛而不深;二是没有条件进行用户测试,程序存在错误。我把软件的源程序公开,免费赠送,目的就是希望用户能选取一些有价值的程序,同时对我提出批评与建议,使我也能不停地长进。作者再谈谈对图形软件研发的几点感受。一、可以选用PC机作为图形软件的硬件平台计算机图形学研发人员在选用硬件平台时,一向青睐图形工作站,总以为PC机太低级而无法胜任自己“高深”的工作。由于国内多数用户并没有富裕到随时可以购买SGI工作站的程度,3D图形的应用就难以普及。这种情况应该可以改变了,现在的高档PC机配上图形加速卡,性能可与中档图形工作站媲美。著名
8、的PC 3D游戏软件Quake,就能实时地绘制高度真实感的复杂场景。Quake软件让我震动,我详细地阅读了关于Quake的著作。发现Quake的开发者能把很多成熟的图形技术发挥到极致,例如把Bresenham画线、多边形裁剪、树遍历等算法的速度提高近一个数量级。我第一次看到Quake时深受打击,这个PC游戏软件的技术水平已经远胜于我所见识到的国内领先的图形学相关科研成果。这对我们日益盛行的点到完止的研发工作真是莫大的讽刺。所以说,如果图形程序在PC机上运行太慢,不要再怨机器差,是我们自己没有把工作做好。二、图形程序的优化图形程序的主要优化目标是绘制速度和真实感质量。某些图形功能的优化方法与环境
9、有关,难以把握。例如用图形加速卡执行纹理映射和反走样速度会很高,但用软件执行(CPU计算)则很慢。相反的情况也存在,例如最简单的OpenGL回调函数glGet,用软件执行很快,却可能导致图形加速卡的流水线绘制崩溃。还要留心的是,即便对于同一算法,代码的组织不同也会产生性能差异。所以交互式3D程序的优化难度较大,开发人员要尽可能多地了解图形系统的软硬件机理。当优化目标之间存在冲突时,要根据实际需求进行折衷。例如在动画过程中可以绘制简化过的场景以提高速度,而在静止时应绘制细节丰富的场景以获得较好的质量。折衷是有原则的,不能使某一方损失关键的功能。如果为了提高动画速度而取消光照明和平滑着色,那么场景
10、就完全丧失了真实感,这种拆东墙补西墙的做法是不可取的。三、图形程序的设计追求美花很多精力和物力让图形那么逼真、界面那么漂亮值得吗?这个问题没法理性地回答。Steven Coons 奖获得者Andries van Dam曾说:“Computer Graphics is the most fun you can have with your clothes on”。设想如果图形程序的里里外外都很难看,谁还有兴趣。我希望Intra3D 2.0不会让自己和用户讨厌。我即将毕业到上海贝尔有限公司从事大型的电信软件研发工作,尽管工作内容变了,但我不想和三维图形说再见。读者可以用 和我联系,当然,您最好和C
11、AD&CG的专家们交流,我只是一名软件开发人员而已。致 谢开发Intra3D软件是作者的博士学位论文工作之一。首先要感谢我的导师,浙江大学计算机辅助设计与图形学(CAD&CG)国家重点实验室石教英教授的大力支持。他允许我自由选择研究方向,并鼓励从实践中不断提高理论水平。杨孟洲、周昆、曾震宇、杨建等同学参加了Intra3D前期版本的开发。白云、金锋两位硕士生是我学位论文工作的主要合作者,我们一起开发了4个软件子系统。北京因特国风网络软件公司()的周鸿一在我开发软件产品失败时给予了最多的帮助,并指正我在软件设计中存在的根深蒂固的方法错误,使我能尽早地逐步改正。杭州金港企业的高振华老先生给予
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 法人和股东分配协议书
- 药企质保协议书
- 配送餐品协议书
- 苗木卸车协议书
- 小红书业务合作协议书
- 安置房交房标准协议书
- 联合购铺协议书
- 桥梁混凝土施工协议书
- 环卫安全协议书
- 租赁临时协议书
- 初中物理《电学》中考专项复习典型考试题100题汇总(附答案)
- 班组工程量结算书
- 最新易制毒化学品管理制度大全
- 机载直流用电设备电源特性要求及试验方法
- 养老院老人入(出)院流程图
- 健康照护教材课件汇总完整版ppt全套课件最全教学教程整本书电子教案全书教案课件合集
- 最新-临时救助申请审核审批表模板
- 《有效沟通》PPT课件-(2)
- 家庭室内装饰装修工程验收单
- 青春红绿灯教学设计中小学心理健康心理游戏脚本
- 《城镇土地使用税纳税申报表》
评论
0/150
提交评论