发表于2024-11-25
Vizard虚拟现实开发指南(清华科技大讲堂) pdf epub mobi txt 电子书 下载
Vizard软件是近年来不断受到国内外专业人士推崇的虚拟现实开发平台。它不但具有免费试用、免费在线技术支持等应用优势,还具有功能完备、适合多种应用环境、支持多种交互设备等技术特点。因此,学习该软件能够在较短时间内掌握虚拟现实应用的相关开发技术,并可进行快速应用。
本书首先简单介绍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.3PolhemusFastrak设备
11.5力反馈设备的用法
11.6特殊显示设备的用法
11.7视频采集设备的用法
11.8基于VRPN的硬件交互
11.8.1基于VRPN的通用交互方法
11.8.2WorldVizPPT设备的访问方法
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在线程序实例说明
第5章人物角色的控制
5.1人物角色的基本概念
1.人物角色的类型
人物角色是虚拟场景中的一类特殊三维模型,它一般作为真实用户在虚拟场景中的扮演者,能够按照用户的意图完成各种变形动作效果,从而使用户达到身临其境的感觉。这就要求,人物角色模型不但具有人体的几何外形,还应该封装有真实人物的动画特征,如行走、坐卧、跑跳、驾驶等。在某些应用场合中,角色模型还可以表现为各种动物或植物。
Vizard软件支持3种文件类型的人物角色,它们对应了3种不同的动画封装方式。第一种类型是普通的三维模型文件格式,如osgb、wrl、3ds等文件格式。用户可以使用3dsMax软件创建这些三维模型。首先,使用关键帧方法为三维模型设定动画效果,或者使用运动捕捉设备记录真实人体的动作效果并赋给三维模型;然后,将这些模型导出为osgb、wrl、3ds等文件格式。此时,关键帧动画参数也会被保存在模型文件中。
上述文件格式存在着一定的局限性:当使用Vizard软件将这些模型导入到虚拟场景中后,它们所封装的动画效果将立即被执行,并且被重复不断地执行,永不终止。这样一来,用户没办法将多个动作封装在一个三维模型中并且选择执行某个特定的动作,更没有办法控制动作执行的时机。因此,不提倡使用这种文件格式存储人物角色。
第二种类型是Cal3D角色模型,它是人物角色专用的文件格式。用户可以将多个动作封装在一个Cal3D人物角色中,并且可以随时执行任意一个动作。Vizard软件针对该文件格式的人物角色提供了功能强大的函数库,并且免费提供了几个模型示例,因此本章重点介绍这种人物角色的操作方法。除了免费的角色模型,WorldViz公司还针对该文件格式推出了百余种收费的角色模型,每个角色模型都封装了数十种动作效果。另外,用户也完全可以制作出自己需要的Cal3D人物角色模型。
第三种类型是Vizard软件提供的实时角色库(VizardLiveCharacters)。该角色库的功能是,直接利用运动捕捉设备作为交互手段实时控制虚拟角色的动画效果。也就是说,真实用户穿戴上运动捕捉设备,该设备与计算机相连,那么当用户运动时,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为缩放关键字。它的取值表示了角色模型的缩放比例。
(4)flip_texture为贴图翻转关键字。它的取值为0或1,表示了贴图内容是否需要上下翻转。
(5)第11行的skeleton为骨骼关键字。它的取值表示了骨骼描述文件的名称。
(6)第14行至第20行的内容描述了人物角色的几何外形。其中,mesh为网格关键字。它的取值表示了几何描述文件的名称。每一个mesh关键字的后面都可以跟随若干行的morph关键字,它表示了该几何外形能够产生的变形效果。在图5.1中,第14行表示头部几何外形,第15、16、17行表示该几何外形能够产生的变形效果,分别为眨眼、皱眉、张嘴。第19行表示了除头部外的其他几何外形,它没有变形效果。
(7)第22行至第36行用于描述角色模型能够产生的动作效果。其中,animation是动作关键字,它的每一个取值表示了一个动作描述文件。在图5.1中共有15个取值,表示该人物角色能够产生15种动作。
(8)第39至第40行用于描述角色模型的材质贴图。其中,material是材质关键字,它的每一个取值表示了一个材质描述文件。在图5.1中共有两个取值。
(9)第42至第49行是附加描述信息。它的功能是,为一些重要的信息提供变量名。在图5.1中,头部骨骼的变量名为head_bone,它的取值为Bip01Head;颈部骨骼的变量名为neck_bone,它的取值为Bip01Neck。有了这些变量名之后,在对角色模型进行骨骼操作时,只需调用这些变量名即可,无须记住具体的取值(骨骼的操作见5.2节)。另外,变量名head_mesh的取值为头部几何外形的描述文件,该变量用于为人物角色替换头部几何外形(具体操作方法见5.4节);变量名speak_morph的取值为张嘴变形网格所对应的描述文件,该变量用于使人物角色的嘴巴产生张合效果从而拟合音频文件(具体操作方法见8.4节);变量名walk_animation用于描述行走动作的索引号,变量名walk_speed用于描述行走动作的速度,它们的设置与动作定义函数vizact.walkTo()相关;变量名run_animation用于描述跑步动作的索引号,变量名run_speed用于描述跑步动作的速度,目前版本的Vizard函数库还没有使用这两个设置。
……
前言
虚拟现实(VirtualReality,VR)技术起源于20世纪60年代。它的目标是:以计算机技术为核心,在视觉、听觉、触觉等方面创造出逼真的虚拟环境;用户借助必要的装备与其进行交互,从而获得身临其境的感受和体验。VR技术涉及心理学、控制学、计算机图形学、数字图像处理、计算机视觉、数据库设计、实时分布系统、电子学和多媒体技术等多个学科,具有较强的综合性和交叉性。
由于它的综合性和不可替代性,世界各国均重视虚拟现实技术的战略研究。我国2006年颁布的《国家中长期科技规划纲要(2006—2020)》也将虚拟现实技术列为信息领域优先支持的3个方向之一。近十几年来,随着信息技术的不断发展,与虚拟现实相关的各个学科都积累了丰富的成果,这些成果极大地推动了虚拟现实技术的发展和应用。目前,虚拟现实技术已被广泛应用于城市规划、医学、娱乐与艺术、卫星与航天、室内设计、产品展示、教育等各个领域。
在最近两年,VR技术已经进入了一个全新的发展时期。例如,在交互硬件方面,OculusRift头盔显示器、HTCVive头盔显示器、LeapMotion体感控制器等各种价格低廉的VR设备层出不穷;在产业发展方面,我国各级政府部门已经纷纷开始筹备VR产业基地。可见,VR研究和应用正在向高端和民用两个方向拓展,VR技术已经开始普及化和商业化。可以预见,在不远的未来,VR相关技术不仅会带来更大规模的技术革命,还会推动商业模式不断推陈出新,甚至直接影响人们的思维模式和生活方式。
虚拟现实技术的推广和应用,离不开专业开发平台的支持。目前,相对成熟的虚拟现实开发平台并不多,而仅有的一些知名虚拟现实平台(如Unity、Unreal等)均是从游戏领域衍生而来的。本书所介绍的Vizard虚拟现实开发平台来自于美国的WorldViz公司。该公司起源于美国加利福尼亚大学虚拟环境与行为研究中心。该公司推出的Vizard引擎最初被应用于心理学研究,然后经多个版本的迭代改进,逐渐被商业化为成熟的VR引擎。
近年来,Vizard软件一直活跃在企业级的虚拟现实应用领域。目前,Vizard软件的企业级用户已经有数千家,其中包含了全球顶尖的科研机构和世界500强企业。国内外的众多高校和研究机构也都相继应用该软件展开科学研究。其中,国外的研究机构包括加利福尼亚大学圣巴巴拉分校虚拟环境与行为研究中心、迈阿密大学心理与计算机科学实验室、加拿大滑铁卢大学心理系、斯坦福大学信息学院虚拟人机交互实验室等;国内的研究机构包括中国科学院心理研究所、北京师范大学心理 Vizard虚拟现实开发指南(清华科技大讲堂) 电子书 下载 mobi epub pdf txt
Vizard虚拟现实开发指南(清华科技大讲堂) pdf epub mobi txt 电子书 下载