描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302473886丛书名: 清华科技大讲堂
本书首先简单介绍Vizard软件的功能特点和开发技巧,然后详细介绍该软件的各个功能模块,具体包括三维模型的操作,任务流程的控制,人物角色的控制,图形用户界面,场景,窗口和虚拟视点,纹理贴图和视音频素材,着色器编程,物理引擎,硬件交互设备,网络控制等。本书*后还给出基于该软件开发出的几个综合实例。针对Vizard软件中的每一个功能模块,本书都提供详细的程序案例和源代码,以帮助读者深入理解它们的使用方法。
值得一提的是,本书在介绍Vizard软件的每一个功能模块时,都详细解释了与其相关的图形学原理。因此,本书既可作为高等院校计算机应用技术、数字媒体技术等相关专业的教材,也可作为虚拟现实技术、人机交互技术等从业人员的自学读物和参考用书。
目录
第1章Vizard虚拟现实开发平台简介
1.1Vizard软件的特点
1.1.1Vizard软件的开发特点
1.1.2Vizard软件的功能特点
1.2Vizard软件的安装
1.3Vizard软件的开发环境
1.3.1开发环境的自定义设置
1.3.2Python工具包的安装
1.3.3脚本文件的编写
1.3.4代码的浏览与定位
1.3.5脚本文件的运行与调试
1.4Vizard软件的开发基础
1.4.1基本开发流程
1.4.2相关技术概念
1.5一个简单的开发实例
第2章Python语言编程基础
2.1Python语言的基本概念
2.1.1Python语言的特点
2.1.2Python编程的注意事项
2.1.3Python程序的执行模式
2.2变量、表达式和语句
2.2.1变量和类型
2.2.2变量名和关键字
2.2.3语句
2.2.4表达式
2.2.5运算符和操作数
2.2.6运算的顺序
2.2.7字符串操作
2.2.8注释
2.3函数和条件表达式
2.3.1函数
2.3.2条件表达式
2.4高级数据类型
2.4.1字符串
2.4.2列表
2.4.3元组
2.4.4字典
2.5面向对象技术
2.5.1类和对象
2.5.2类和方法
2.5.3类的继承
2.6Python语言的工具包
2.7总结
第3章三维模型的操作
3.1三维模型的文件格式
3.2三维模型的准备
3.2.1三维模型的优化方法
3.2.2OSG模型的准备
3.2.3Vizard所支持的OSG模型特征
3.3三维模型的基本操作
3.4三维模型的层次关系与坐标系统
3.5三维模型的高级操作
3.6OSG模型文件内部的层次关系及其操作
3.7文本模型
3.8在脚本程序中创建三维模型
3.9其他特殊模型
第4章任务流程的控制
4.1vizact库
4.1.1简单示例
4.1.2vizact库的基本使用方法
4.1.3vizact库的高级应用
4.1.4小结
4.2物体之间的链接
4.2.1链接的基本概念
4.2.2链接的高级应用
4.2.3链接对象的矩阵操作符
4.2.4路径动画
4.3viztask库
4.3.1简单示例
4.3.2Task对象的基本概念
4.3.3Task对象的应用分析
4.3.4小结
4.4Director库
4.5Timer工具
4.5.1vizact库中的Timer控制方法
4.5.2Event库中的Timer控制方法
4.5.3利用面向对象方法封装Timer功能
4.6Event库
4.6.1Event库的应用方法
4.6.2用户自定义事件
4.6.3常用标准事件参考
4.6.4路径动画中的事件机制
4.6.5vizact库中的相关函数
4.7其他流程控制工具
4.8各种流程控制方法的分析
第5章人物角色的控制
5.1人物角色的基本概念
5.2人物角色的程序控制
5.2.1人物角色的基本控制
5.2.2基本控制的程序举例
5.2.3人物角色的骨骼控制
5.2.4骨骼控制的程序举例
5.2.5小结
5.3角色模型的制作
5.3.1角色建模的注意事项
5.3.2Cal3D文件导出的总体说明
5.3.3Cal3D文件导出的详细步骤
5.3.4编写CFG索引文件时的注意事项
5.4面部表情的控制
5.5vzf头部模型的制作方法
5.6总结
第6章图形用户界面
6.1一个简单示例
6.2GUI对象的基本操作
6.3GUI对象的布局
6.4利用画布管理GUI对象
6.5通用对话框
6.6其他GUI工具
第7章场景、窗口和虚拟视点
7.1虚拟场景、虚拟视点和显示窗口之间的关系
7.2虚拟视点的操作方法
7.3显示窗口的操作方法
7.4显示窗口的立体效果
7.5应用程序窗口的操作方法
7.6总结
第8章纹理贴图和视音频素材
8.1三维模型的外观
8.2三维模型的纹理操作
8.2.1纹理的基本操作
8.2.2多重纹理
8.2.3环境映射
8.2.4程序渲染的纹理
8.2.5纹理操作的总结
8.3场景渲染的特殊处理技巧
8.3.1全景图的浏览
8.3.2非真实感的绘制
8.3.3绘制序号和深度偏移
8.3.4半透明效果的处理机制
8.4视音频操作
8.5灯光的操作
8.5.1光源的基本操作
8.5.2光源的属性
8.5.3多光源设置
8.5.4光源的投影效果
第9章着色器编程
9.1着色器编程的基本方法
9.1.1着色器编程的步骤
9.1.2着色器编程举例
9.2vizfx库简介
9.3vizfx库提供的着色器特效
9.3.1与光照相关的功能
9.3.2与投影特效相关的功能
9.3.3用户自定义的effect对象
9.3.4用户自定义的effect对象举例
9.4postporcess函数库
9.4.1画面后处理对象的应用
9.4.2画面后处理对象的组合
第10章物理引擎
10.1物理引擎的基本概念
10.1.1物理引擎的应用步骤
10.1.2物理形状的设置方法
10.1.3物理引擎的基本应用举例
10.2三维模型的物理属性和人为外力
10.3复杂物理形状和碰撞事件的响应
10.4关节装置的使用
10.4.1关节装置的类型
10.4.2关节装置的受力
10.5物理引擎的其他注意事项
10.6总结
第11章硬件交互设备
11.1普通交互设备
11.1.1鼠标的控制
11.1.2键盘的控制
11.2特殊交互设备概述
11.3运动跟踪设备的一般用法
11.4运动跟踪设备的举例说明
11.4.1游戏设备
11.4.2虚拟跟踪设备
11.4.3Polhemus Fastrak设备
11.5力反馈设备的用法
11.6特殊显示设备的用法
11.7视频采集设备的用法
11.8基于VRPN的硬件交互
11.8.1基于VRPN的通用交互方法
11.8.2WorldViz PPT设备的访问方法
11.9三维交互的辅助工具包
11.10硬件交互的整体解决方案
11.10.1Vizconnect工具的功能介绍
11.10.2Vizconnect工具的配置举例
第12章网络控制
12.1端到端的网络连接
12.2端到端的网络连接举例
12.3viznet函数库
12.4客户端/服务器的网络连接举例
12.5集群绘制
12.5.1集群绘制的基本概念
12.5.2集群绘制的编程步骤
12.6洞穴虚拟现实系统
第13章其他辅助功能
13.1文件的存取
13.2软件环境的全局配置
13.3矩阵运算函数库
13.4可执行文件的发布
13.5插件开发工具
第14章综合应用实例
14.1面向对象的编程技巧
14.2科学实验的程序设计
14.3交互游戏的程序举例
14.4在线程序实例说明
虚拟现实(Virtual Reality,VR)技术起源于20世纪60年代。它的目标是: 以计算机技术为核心,在视觉、听觉、触觉等方面创造出逼真的虚拟环境; 用户借助必要的装备与其进行交互,从而获得身临其境的感受和体验。VR技术涉及心理学、控制学、计算机图形学、数字图像处理、计算机视觉、数据库设计、实时分布系统、电子学和多媒体技术等多个学科,具有较强的综合性和交叉性。
由于它的综合性和不可替代性,世界各国均重视虚拟现实技术的战略研究。我国2006年颁布的《国家中长期科技规划纲要(2006—2020)》也将虚拟现实技术列为信息领域优先支持的3个方向之一。近十几年来,随着信息技术的不断发展,与虚拟现实相关的各个学科都积累了丰富的成果,这些成果极大地推动了虚拟现实技术的发展和应用。目前,虚拟现实技术已被广泛应用于城市规划、医学、娱乐与艺术、卫星与航天、室内设计、产品展示、教育等各个领域。
在近两年,VR技术已经进入了一个全新的发展时期。例如,在交互硬件方面,Oculus Rift头盔显示器、HTC Vive头盔显示器、Leap Motion体感控制器等各种价格低廉的VR设备层出不穷; 在产业发展方面,我国各级政府部门已经纷纷开始筹备VR产业基地。可见,VR研究和应用正在向高端和民用两个方向拓展,VR技术已经开始普及化和商业化。可以预见,在不远的未来,VR相关技术不仅会带来更大规模的技术革命,还会推动商业模式不断推陈出新,甚至直接影响人们的思维模式和生活方式。
虚拟现实技术的推广和应用,离不开专业开发平台的支持。目前,相对成熟的虚拟现实开发平台并不多,而仅有的一些知名虚拟现实平台(如Unity、Unreal等)均是从游戏领域衍生而来的。本书所介绍的Vizard虚拟现实开发平台来自于美国的WorldViz公司。该公司起源于美国加利福尼亚大学虚拟环境与行为研究中心。该公司推出的Vizard引擎初被应用于心理学研究,然后经多个版本的迭代改进,逐渐被商业化为成熟的VR引擎。
近年来,Vizard软件一直活跃在企业级的虚拟现实应用领域。目前,Vizard软件的企业级用户已经有数千家,其中包含了全球的科研机构和世界500强企业。国内外的众多高校和研究机构也都相继应用该软件展开科学研究。其中,国外的研究机构包括加利福尼亚大学圣巴巴拉分校虚拟环境与行为研究中心、迈阿密大学心理与计算机科学实验室、加拿大滑铁卢大学心理系、斯坦福大学信息学院虚拟人机交互实验室等; 国内的研究机构包括中国科学院心理研究所、北京师范大学心理学院实验教学示范中心等。可见,Vizard软件越来越受到国内外虚拟现实相关领域用户的推崇。然而,它的相关学习资料并不多,中文资料更加匮乏。所以,本书的目标在于系统地总结该软件的开发方法,为国内用户提供详细的中文参考资料。相比其他VR软件,Vizard软件具有如下特点: ,它具有免费试用、免费技术支持等应用优势,能够使初学者快速入门; 第二,它具有功能完备、适合多种应用环境、支持多种交互设备等技术特点,能够使用户全面体验虚拟现实领域的各种技术; 第三,它既提供专用的模型浏览工具,又提供了脚本程序的集成开发环境,更提供了扩展插件的开发接口。这些特点能使用户在较短时间内掌握虚拟现实应用的相关开发技术并进行快速应用。
本书的章节安排如下: 第1章介绍Vizard软件的基本特点、集成开发环境、相关技术概念等内容,然后给出一个简单的开发实例,该实例能够使用户对Vizard软件的开发过程有一个整体感受; 第2章介绍Python语言的编程技巧; 第3~12章详细介绍Vizard软件的各个功能模块,具体包括三维模型的操作,任务流程的控制,人物角色的控制,图形用户界面,场景、窗口和虚拟视点,纹理贴图和视音频素材,着色器编程,物理引擎,硬件交互设备,网络控制; 第13章介绍Vizard软件的一些辅助功能,包括软件环境的全局配置、矩阵运算函数库、可执行文件的发布等; 第14章介绍Vizard软件的一些综合应用实例。
本书的读者好已经掌握了如下一些基础知识: Python编程语言、计算机图形学基础等。这些基础知识能够帮助读者深入理解Vizard软件的技术特点,从而获得Vizard软件的专业开发能力。对于没有这些基础知识的虚拟现实爱好者而言,本书同样具有阅读价值。本书能够引导初学者快速实现一个简单的虚拟现实程序。在介绍各个功能模块时,本书同时对相关的图形学概念进行了解释说明,以辅助读者对虚拟现实各项关键技术的理解。
本书的官方网站为www.t3edu.com。读者可以在此网站上下载本书所有的电子资源,此网站还会陆续推出与本书相关的视频教程。另外,该网站还提供了全球的中文Vizard在线论坛。本书的微信公众号为“T3教育”(该公众号的二维码如右图所示),新浪微博为“T3VR”,QQ群号为548909625。这些平台会持续更新Vizard软件的相关资讯。如果读者有任何关于Vizard软件方面的疑问,均可在这些平台上获得解答。
致谢本书的编写集合了作者多年的教学和实践经验,并参考和借鉴了互联网上的一些图片资源。这些图片的原始来源已无法考证,所以在此对这些图片的发布者表示感谢。
在这里,首先要感谢TSenseVR实验室全体工作人员的大力支持,TSenseVR实验室是美国WorldViz在中国独家授权的培训实验室。在本书的编写过程中,该实验室的工作人员提出了很多宝贵的意见和建议。还要感谢TSenseVR实验室提供的硬件资源,这些硬件资源在国内外都具有一定的领先性。这使得本书第11章的编写过程变得非常顺利。
在此还要感谢北京语言大学信息科学学院的张习文教授和付永刚副教授。在Vizard软件的教学过程中,他们和作者一起进行课程设计、教学分析,并给出了很多的宝贵意见; 还要感谢北京语言大学信息科学学院数字媒体技术专业在过去10年的历届学生,他们对该书投入的热情、及时的信息反馈,都为本书的设计和编写提供了宝贵的思路; 还要感谢北京语言大学信息科学学院的数字媒体实验室,该实验室中的各种专业设备为本书编写提供了良好的硬件保障。本书的编写和出版受到了如下科研项目的资助: 国家自然科学基金项目(61202249)、北京语言大学梧桐创新平台项目(中央高校基本科研业务费)(16PT04)、北京语言大学中青年学术骨干支持计划。由于作者水平有限,书中难免存在不足和疏漏之处,恳请广大读者批评指正。在阅读本书的过程中,如果遇到任何问题,均可发送电子邮件至[email protected]或者[email protected]进行交流。
编者2017年6月
5.1人物角色的基本概念1. 人物角色的类型人物角色是虚拟场景中的一类特殊三维模型,它一般作为真实用户在虚拟场景中的扮演者,能够按照用户的意图完成各种变形动作效果,从而使用户达到身临其境的感觉。这就要求,人物角色模型不但具有人体的几何外形,还应该封装有真实人物的动画特征,如行走、坐卧、跑跳、驾驶等。在某些应用场合中,角色模型还可以表现为各种动物或植物。
Vizard软件支持3种文件类型的人物角色,它们对应了3种不同的动画封装方式。种类型是普通的三维模型文件格式,如osgb、wrl、3ds等文件格式。用户可以使用3ds Max软件创建这些三维模型。首先,使用关键帧方法为三维模型设定动画效果,或者使用运动捕捉设备记录真实人体的动作效果并赋给三维模型; 然后,将这些模型导出为osgb、wrl、3ds等文件格式。此时,关键帧动画参数也会被保存在模型文件中。上述文件格式存在着一定的局限性: 当使用Vizard软件将这些模型导入到虚拟场景中后,它们所封装的动画效果将立即被执行,并且被重复不断地执行,永不终止。这样一来,用户没办法将多个动作封装在一个三维模型中并且选择执行某个特定的动作,更没有办法控制动作执行的时机。因此,不提倡使用这种文件格式存储人物角色。
第二种类型是Cal3D角色模型,它是人物角色专用的文件格式。用户可以将多个动作封装在一个Cal3D人物角色中,并且可以随时执行任意一个动作。Vizard软件针对该文件格式的人物角色提供了功能强大的函数库,并且免费提供了几个模型示例,因此本章重点介绍这种人物角色的操作方法。除了免费的角色模型,WorldViz公司还针对该文件格式推出了百余种收费的角色模型,每个角色模型都封装了数十种动作效果。另外,用户也完全可以制作出自己需要的Cal3D人物角色模型。第三种类型是Vizard软件提供的实时角色库(Vizard Live Characters)。该角色库的功能是,直接利用运动捕捉设备作为交互手段实时控制虚拟角色的动画效果。也就是说,真实用户穿戴上运动捕捉设备,该设备与计算机相连,那么当用户运动时,Vizard程序中的虚拟角色将会发生相应的运动。与前两种类型相比,这种角色库提供了完全逼真的实时交互效果。该实时角色库没有免费示例,用户可以访问WorldViz公司网站了解详细的信息。2. 人物角色的Cal3D文件格式Cal3D文件格式是Vizard软件重点支持的人物角色文件格式。一个完整的Cal3D角色模型包含如下5个部分。(1) 骨骼描述文件: 它定义了角色模型的骨骼结构,如脊椎骨、颈骨、锁骨等。它具体体现为一个.csf文件。(2) 动作描述文件: 它描述了角色模型能够完成的各种动作效果。每个动作效果对应着一个.caf文件。(3) 几何描述文件: 它描述了角色模型的几何外形,具体体现为一系列的.cmf文件。每一个文件对应着人物角色几何形状的某个部分,例如,头部对应一个.cmf文件; 四肢对应一个.cmf文件; 身体对应一个.cmf文件等。(4) 材质描述文件: 它描述了角色模型的材质参数和纹理贴图,具体体现为一系列的.crf文件。(5) 索引文件: 它描述了上述四类文件的路径索引及功能标签,具体体现为一个.cfg文件。可见,一个Cal3D角色模型不是一个文件,而是包含了上述5个部分的多个文件。对于一个Cal3D角色模型来讲,索引文件(.cfg文件)和骨骼描述文件(.csf或.csfx文件)是的,其他描述文件的个数均不。另外,索引文件是文本格式,而其他描述文件为二进制格式。
对于一个Cal3D角色模型来讲,索引文件(.cfg文件)中存储了其他各个描述文件的路径索引和功能标签。用户在编程时,主要针对索引文件进行操作。下面以一个具体的角色实例来分析索引文件的存储格式。
图5.1是Vizard软件免费提供的一个Cal3D角色模型的索引文件。如果用户安装了Vizard软件,那么该文件的存储路径为“WorldViz\Vizard5\resources\vcc_male.cfg”。图5.1是使用文本编辑器打开该文件后的显示内容。该文件的存储结构具有如下规则。
图5.1cfg文件格式举例
(1) 如果某一行的起始字符为“#”,那么该文本行是注释行,没有语法含义。(2) path为路径关键字。它的取值表示了其他四类文件(骨骼描述文件、动作描述文件、几何描述文件、材质描述文件)相对于当前.cfg文件的存储路径。本例中的相对存储路径为“vcc_male/”。(3) scale为缩放关键字。它的取值表示了角色模型的缩放比例。
评论
还没有评论。