Open Inventor是目前世界上应用最为广泛的面向对象和交互式的三维图形软件开发包。它是在OpenGL的基础上开发而成的,因而也是一种相对独立的图形系统,并可方便地移植到不同操作系统的硬件平台上。由于Open Inventor在构造复杂的三维场景时采用了“搭积木”的灵活方式,这使得用户只需花费很少的时间就可构造出复杂、优美的三维场景:其不同时期编制的同一Open Inventor程序代码都可利用OpenGL的最新发展技术,并能最大限度地发挥所使用的计算机软硬件性能。另外,Open Inventor还能够完美支持VRML 97、三维音效、三维纹理和多处理器的并行渲染技术。.
然而,在当今图形学迅速发展的年代中,国内至今还没有一本完整介绍Open Inventor程序设计的中文资料。OpenGL ARB(Architecture Review Board,体系结构审核委员会)先后推出了OpenGL的1.2、1.3、1.4和2.0版,相关的中文资料不下二三十种;Microsoft推出的Direct3D能够有效提高三维游戏在Windows中的显示性能,介绍与游戏开发相关的书籍有十多种:一些常用的图形处理软件如Photoshop、动画制作软件3D MAX等,介绍其应用的书籍足有数百种之多!作为未来发展势头强劲的Open Inventor,急需相关的中文参考资料才能提高其应用水平。这就是我们编著这本书的主要目的之一。
本书从最常用的图形效果入手,清晰勾勒出Open Invemor的实现流程,并辅以浅显易懂、针对性强的综合应用实例让读者迅速进入Open Inventor应用开发的广阔天地。
主要内容
全书共分15章。前3章介绍与Open Inventor程序设计相关的基本知识。
第1章绪论。概述计算机图形学的发展,详细介绍了虚拟现实技术在近年来的巨大发展;为巩固程序设计基础,本章介绍了面向对象程序设计思想和Windows的编程规范。
第2章Open Inventor基础知识。从OpenGL说起,介绍两者之间的关系,重点说明Open Inventor的发展状况。
第3章Open Inventor与视窗系统。为了能够在Windows下进行程序设计,介绍了Open Inventor软件开发包的获取、安装、设置等,并分别给出了入门示例程序。
第4章到第9章给出了向三维场景添加对象并优化显示的技术,其中多为设计三维形体方面的描述。
第4章基本概念及定义。所有的三维场景都要建立在Open Inventor的场景数据库的基础上,需要引入并定义节点、路径等基本概念。
第5章形状节点与视图变换。介绍了Open Inventor造型过程中使用的形体节点,对构建场景时所使用变换过程及实现方法进行了描述。
第6章颜色和光照。介绍了在计算机上模拟真实环境中光照和颜色的方法,使用场景中的光照来观察三维物体对象。
第7章纹理映射。阐述如何将纹理映射到三维物体上,并用纹理映射实现许多具有高度逼真效果的场景。
第8章曲线与曲面。介绍了NURBS的相关知识和实现方法。
第9章存取三维场景数据。讨论如何将三维场景输出并保存到文件中,如何从其他文件中读入所需的场景数据。
后面几章介绍了Open Inventor所特有的高级组件和工作机理,在熟练使用前述内容的基础上深入理解这部分概念,的确可为场景的交互增加许多便捷之处。
第10章场景遍历。介绍了程序在图形绘制时所触发的遍历动作和高级渲染技术。
第11章事件和选择。阐述了事件的处理机制和处理过程,并介绍了选择操作的实现机理和程序设计方法。
第12章传感器和引擎。Open Inventor的许多自动处理功能都与之相关。
第13章节点工具箱和组件库。这是能够大大简化程序设计代码量的有效工具和使用方法,而且能够使开发的应用程序更好地利用操作系统中的资源。
. 第14章拖拽器和操纵器。这是与场景进行动态交互的主要手段和方法。
第15章TGS对Open Inventor的拓展。介绍了TGS公司开发的Open Inventor各扩展模块,主要侧重于各模块的应用领域和方向。
此外,本书还添加了数页Open Inventor直观应用的彩图示例和两个对读者很有帮助的附录。
彩色插图功能强大的Open Inventor。在彩页一中,使用球体描述了图形学中常见的反走样现象,这在Open Inventor中非常容易得到处理,详细内容见第10章:使用立方体给出了修改Open Inventor光照模拟真实感图形的示例,参见第6章;使用球体和立方体的半透明属性和前后遮挡关系,给出了Open Inventor在渲染场景中的易用性,也可取得一些特殊的效果,参见第10章:最后一行则给出了使用拖拽器来操纵物体的示例,参见第14章;彩页二到四给出了综合应用本书中阐述的知识原理所获得的复杂场景图。
附录AOpen Inventor中的OpenGL状态变量。详细给出了在Open Inventor渲染三维数据时所使用的OpenGL状态变量,这能够帮助我们建立结合二者优点的高效程序。..
附录B术语表。详细列出了每个易于混淆的中文译法,这能够帮助我们建立具有本土化特色的Open Inventor程序开发环境。
本书特点
利用Open Inventor进行程序设计时,可以使用各种现行操作系统,编译调试、仿真测试等诸多方面也都兼容于各种软件开发环境,因此,本书力求透视应用程序开发的详细过程和特点。本书的主要特色如下:
本书是国内第一本特色鲜明地针对Open Inventor程序设计的中文资料,是学习Open Inventor程序设计和三维图形绘制技术难得的参考书。考虑本书的基础性,尽量选用基础性知识,力求使投身三维图形程序开发的读者都能读懂本书。
Open Inventor软件开发包的选择。针对Open Inventor与操作系统的无关性,虽然为开发跨平台应用软件提供了可能,但这在一定程度上造成了入门用户选择认知的障碍。针对这种情况,本书从操作系统和实际应用两方面着手,从综合应用的角度出发详细阐述了基本概念,深入浅出地讲解了实现方法。
本书突出“实用”的特点。体现了作者在Open Inventor应用系统开发过程中积累的经验,以及对Open Inventor开发较深的理解。首先,从理论上进行相应的介绍后,通过相应的例程来加以说明,让读者通过简单的例程来领悟技术内涵;其次,对于原理应用和分析,给出相应的实例图形;最后,用实际应用中的热门开发实例,详细而系统地介绍其实现机理和实现方法。总之,本书突出了Open Inventor程序设计的“实用性”特点。
本书以主流的Open Inventor体系、Windows操作系统和开发环境为例,在学习Open Inventor程序设计的同时,也掌握了主流Open Inventor的程序开发资源。而且本书对于Open Inventor中出现的关键术语给出了中英文原词对照,并在附录部分系统地给出了与Open Inventor开发相关的网络资源,以便读者尽快融入Open Inventor应用系统开发的国际潮流。
适用对象
本书内容新颖,语言通俗易懂,体系逻辑性强,内容丰富详实,实例特点突出,是学习Open Inventor程序设计和三维图形技术开发难得的参考书。既可作为具有一定的C和C++编程经验的从事OpenGL、DirectX等开发工作的程序设计人员、大专院校学生以及科研院所从事虚拟产品开发人员的必备参考工具,也可作为广大图学爱好者提高自己程序开发水平的学习用书,还可作为Open Inventor三维图形程序开发的培训教程。
获得范例程序代码
本书既包含很多完整的范例程序,也包含许多代码片断,用于演示Open Inventor的编程技巧。因此,书中详细讨论的每一个例子都有与之对应的程序。但这些程序代码大多在30行以上,如果重新输入计算机调试环境中难免出错,因而我们提供了配合本书使用的示例程序光盘。在所附的程序光盘中,所有程序均按照书中章节分目录存放,每章中的例子程序均以exam** **的名称顺序命名,分别表示书中具有完整代码的程序。在调试程序时,请使用Visual C++ 6.0或其以上版本(需重新设置Open Inventor的所在目录)编译,运行环境是Windows XP。书中的程序均由作者调试通过。
此外,也可以通过作者注册的本书博客网页来讨论书中的相关内容:openiv.blogcn.com;通过清华大学出版社网站中的“下载专区”查找下载:www.tup.tsinghua.edu.cn;通过作者注册的专门用于本书的博客下载或留言:openiv.blogcn.com。
编写分工与致谢
本书由闫锋欣、侯增选、张定华、方淳和周育红合力编著。感谢孙蓓、刘溪、刘飞、宁志鹏在写作过程中提供的大力帮助和收集的部分资料:感谢祁小苑和苟园婕为本书绘制了全部插图;感谢温春明、张淑焕两人提供的硕士毕业论文,他们为本书的写作提供了不少灵感;感谢周莉娜小姐及其家人在本书编写过程中所给予的热心鼓励和默默支持;衷心感谢其他为本书编著工作提供帮助的人员,他们是杨振朝、张莹、曾泉人、李明君等。
特别感谢西北工业大学现代设计与集成制造教育部重点实验室的卜昆副教授、陕西科技大学陈海峰博士以及北京邮电大学的刘会永博士等人对本书编著所提供的大力帮助。
特别感谢Mercury 3D Visualization中国区销售代表袁英先生、北京赛四达科技有限公司西安办事处雷锐经理、北京国遥万维信息技术有限公司王鹏经理等公司技术开发人员的大力帮助。
感谢Mercury TGS公司、Systems In Motion公司、SGI公司所提供的技术支持和帮助。
在编写本书过程中,得到了各方面无私的帮助,在此深表感谢。
由于本书篇幅较大,涉及技术内容广泛,加之时间仓促,书中难免存在错误或疏漏之处,诚恳期待广大读者的批评指正和建议,以便使本书日臻完善。...
欢迎致信E-mail:yfx2009@sina.com。
编者