虚拟人技术的手语合成系统.docx

上传人:b****1 文档编号:415233 上传时间:2022-10-09 格式:DOCX 页数:14 大小:105.22KB
下载 相关 举报
虚拟人技术的手语合成系统.docx_第1页
第1页 / 共14页
虚拟人技术的手语合成系统.docx_第2页
第2页 / 共14页
虚拟人技术的手语合成系统.docx_第3页
第3页 / 共14页
虚拟人技术的手语合成系统.docx_第4页
第4页 / 共14页
虚拟人技术的手语合成系统.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

虚拟人技术的手语合成系统.docx

《虚拟人技术的手语合成系统.docx》由会员分享,可在线阅读,更多相关《虚拟人技术的手语合成系统.docx(14页珍藏版)》请在冰豆网上搜索。

虚拟人技术的手语合成系统.docx

虚拟人技术的手语合成系统

虚拟人技术的手语合成系统

一.虚拟人建模

1.概述

手语是一种可视语言,合成的手语需要用图形或图像的方法显示出来,观察者才能“读”取手语的信息与意义。

虚拟人是完全由计算机表示,看起来像真人的图形实体,这就要求虚拟人要做的逼真,并且能正确的模拟人类的各种动作。

2.虚拟人建模的常用方法

虚拟人建模有以下几种常用方法:

棒模型:

使用棒元素来表示人体轮廓,这种表示方法表示的真实感较差,但由于其模型简单,显示的速度比较快,一般在研究中研究运动模型的时候使用。

表面模型:

是由一系列多边形或曲面片的表面将人体骨骼包围起来来表示人体外形。

主要有多边形法(Polygon),Bezier曲面法和有限元法(FEM,FiniteElementMethod)。

●多边形法:

该方法把人体表面分解成多边形,然后消除隐藏面并着色以达到逼真的程度。

●Bezier曲面法:

将人体的每一个部位定义成一个Bezier曲面集,并把这些曲面光滑地连接在一起,用Bezier曲面集的坐标变换来模拟与人体活动相一致的自然的皮肤变化。

●有限元法:

采用大量图元,利用有限元理论的数值模拟计算法。

用多边形表示的表面模型虽然可以通过修改表面点来表示人体部位的运动,也可以消除其隐藏面,真实感较强,但有限的多边形面表示人体表面光滑型不够。

使用Bezier曲面的表面模型方法比较逼真,但是,处理的数据量十分庞大,时间和空间开销很大,并且建立光滑连接的皮肤活动模型难度较大

体模型有基本体素的组合来表示人体的外形,基本体素可以是圆柱体,椭球体,球体等。

宋顺林等采用了一种多面体胶接的方法来模拟人体的外型:

人体外型是由各个部位和相应关节组合而成,每个部位用部位多面体来模拟,相应关节用关节多面体来模拟,部位体是由多个多边形组合而成,并且具有体积,而关节体是没有厚度的两个重叠的多边形构成的多面体。

设计思想如下:

每个部位体都为一多边形棱柱,组成该棱柱的多边形称之为片,片类似于人体的横截面,将相邻片之间定点连接起来就构成了多边形棱柱如下图所示:

如图所示:

A1B1C1D1,A2B2C2D2,A3B3C3D3为该多面体的片。

关节体为仅有一多边形组成的体结构,该多边形的顶点为关节部位的特征点,选取的特征点数应与上下部位体片多边性相一致将多面体相邻的面的对应顶点连接就产生棱,擦除相邻的面,两个实体就胶接为一个实体,对每两个相邻的面都重复这样的过程,就可以产生初始的粗略人体。

3.VRML语言

Internet上第一个浏览器发行不久,VirtualRealityMarkupLanguage(VRML)成为Internet上虚拟现实的3D标准。

它的传输协议同于WorldWideWeb(WWW)上的传输协议(HTTP),文件格式是OpenInventor的Inventor文件格式的子集。

1994年在瑞士日内瓦举办的WorldWideWeb会议上VRML作为一个3DWeb标准被提出,VRML这一缩写改为代表“VirtualRealityModellingLanguage”这一术语,更贴切反映了VRML的本质。

通过用建模语言来构造计算机可操作的对象以反映外部世界。

这和大多数图形软件的构造对象的模式有异曲同功之处。

有于时间上的紧迫,VRML协议创建者中的大多数赞成用SGI公司的OpenInventor的文件格式作为VRML1.0的文件描述规范。

这样OpenInventor的一个子集加上网络功能,成为VRML1.0的主要组成部分。

在1995年春,SGI推出了第一个VRML浏览器———WebSpace,可用来浏览VRML1.0所构造的虚拟世界。

VRML的设计者想使它成为一种在Internet上具有交互性和多方参与性的分布式虚拟现实标准建模语言。

这就要求它具有平台独立性,可扩展性。

VRML1.0实际上只是这些要求的部分实现。

它能展现三维图景,用户也可在其中漫游,但环境只提供有限的交互性。

1996年优秀3D图形技术会议上,随着VRML2.0的确定,VRML所构造的虚拟世界更接近真实世界。

VRML2.0支持SGI提出的MovingWorlds建议,使它更具有交互性。

在虚拟世界中,漫游者可以操纵灯的开关,招手Taxi,可以听到有远及近的火车汽笛声。

并且,VRML2.0采用Apple公司平台独立的3D图元格式(3DMF)技术对.wrl文件进行压缩,以实现更快的在Internet上传输3D虚拟世界。

VRML是Web技术发展的一个重要里程碑,它有如下的特点:

以VRML为核心的第二代Web不同于以HTML为核心的第一代Web技术。

它把VRML与HTML,Java媒体信息流等技术有机的结合起来,形成一种新的三维超媒体网页。

它展示给用户一个交互,三维,动态,逼真的世界。

(1)它是一个3D造型和渲染的图形描述性语言,用普通的文本编辑器就可以编写出来,也可用专门程序生成或变换而得到

(2)它的图形渲染是实时的

(3)它是面向网络的语言:

它是应网络而生,随网络而发展;传输的是小容量的.wrl等格式的文件,并且支持gzip压缩,使得文件可以缩减到.wrl格式的文件的十分之一

(4)它并不是一种编程语言,而是一种标记语言,其中定义了构成3D景象的基本元素。

所以它的执行不需要任何编译,只要将ASCII文件送到VRML浏览器去解释并将所描述的场景现实与屏幕上。

通过VRML浏览器,用户能再一个虚拟场景中自由移动,还能与其中的实体相互交互,并且通过超链接还可以到达另一个新的三维世界。

(5)VRML与软硬件平台无关,是一个开放的标准。

VRML是在Internet上构造和共享虚拟世界的一个强大工具。

通常需要专门的应用程序或浏览器的plug-in来查看。

VRML中由一个专门的子标准描述虚拟人模型,称为H-anim(HumanoidAnimation),完全遵循VRML语法,可以方便的在Internet上表示并共享三维虚拟场景和虚拟物体。

3.1VRML的语法介绍

VRML文件中的主要成分包括VRML文件头,原型,造型,脚本和路由等,这些也不都是必需的,就是说并不是每一个VRML文件都必须包含这五个成分,根据我们所编写的VRML程序不同,包含的成分也不同。

不过VRML文件头是必需的,语法如下:

#VRMLV2.0utf8

该文本行必须位于VRML文件的第一行,必须按照其语法形式出现,不得更改。

●造型

物体的造型既场景图,场景图由描述对象及其属性的节点组成。

节点由两部分组成:

第一部分为视觉和听觉所表现的对象,按层次体系结构组织而成;第二部分为参考事件和路由机制,这部分为交互提供的功能。

节点是现实世界中各种对象和概念的抽象描述,它是VRML文件中最基本的组成部分。

节点中的属性称为域,属性的值称为域值。

每种节点都有自己的一套域,域中定义了节点的各个属性。

通过修改节点的域的域值就可更改该节点的属性,进而改变VRML场景。

节点的类型有主要有以下几种:

☐形态和几何节点:

这些节点构造出原始的物体造型,有以下几种:

Box(长方体)

Cone(圆锥)

Cylinder(圆柱)

IndexFaceSet(索引面集)

IndexLineSet(索引线集)

PointSet(点集)

Sphere(球体)

Text(文本)

☐几何属性节点

Color(颜色)

Normal(法向量)

Coordinate(坐标)

Orientation(朝向)

Position(位置)

☐外观节点

Appearance为Shape节点指定材质和纹理

☐组节点

Group(组)

Transform(变换)

Group和Transform的区别是Transform可以进行新坐标系的平移,旋转和缩放;而Group节点是在原有坐标系中,并没有产生新的坐标系

其中,有一些节点还可以做其他节点的子节点,这样就可以把一个场景图变成一颗树

域可以包含各种类型的数据和单个或是多个的值。

每个域都有缺省值。

有两类常见的域,一类只包含单值;域名以SF开始;另一类包含多个值,叫多值域,名称以MF开始。

表示多值域的方法是一系列用逗号和空格间隔开的单值,整个用方括号扩起来。

每个域都有缺省值。

域的类型有下面几种:

SFBool:

布尔型变量值能取TRUE和FALSE

SFColor:

颜色变量,和RGB值一样,有三个0.0-1.0的浮点型变量组成

SFFloat和MFFloat:

分别表示一个和多个ANSIC格式的单精度浮点数

SFImage:

含有非压缩的二位彩色图像或灰度图像

SFInt32和MFInt32:

分别表示一个和多个32位整数

SFNode和MFNode:

分别包含一个和多个节点

SFRotation和MFRotation:

SFRotation规定一个绕任意轴的任意角度的旋转,包含4个浮点数,前三个数代表旋转轴,第四个数代表绕上述旋转轴旋转的弧度

SFString和MFString:

SFTime和MFTime:

SFVec2f和MFVec2f:

定义一个和多个二维向量

SFVec3f和MFVec3f:

定义一个和多个三维向量

下面以Transform节点为例说明一下

每一个Transform节点都创建一个相对已有坐标系的新坐标系,并且该节点所包含的空间造型都是在这个新的坐标系的基础上创建的。

其语法定义如下:

Transform{

eventInMFNodeaddChildren

eventInMFNoderemoveChildren

exposedFieldSFVec3fcenter000

exposedFieldMFNodechildren[]

exposedFieldSFRotationrotation0010

exposedFieldSFVec3fscale111

exposedFieldSFRotationscaleOrientation0010

exposedFieldSFVec3ftranslation000

fieldSFVec3fbboxCenter000

fieldSFVec3fbboxSize-1-1-1

}

●原型

节点的原型是节点对其中的域,如事件和出事件的声明,用户可以通过原型扩充VRML节点类型集。

原型的定义可以包含在使用该原型的文件中,也可以在外部定义。

原型的例子将在后面看到。

●脚本

脚本是一套程序,通常作为一个事件级联的一部分而执行。

●路由

路由是产生事件和接收事件的节点之间的连接通道。

路由不是节点,路由说明是为了确立被指定的域的事件之间的路径而人为设定的框架。

路由说明可以在VRML文件的顶部,也可以在文件节点的某一个域中。

3.2H-Anim介绍

H-Anim制定了一个标准,这个标准能用标准的VRML语法来定义人体。

这个标准的目标是:

●兼容性:

虚拟人应该能在VRML兼容的浏览器中运行

●弹性:

没有规定某种类型的程序来使用虚拟人

●简单性:

可以被以后扩展

人的身体包括很多段(Segment)(像前臂,手和脚),这些段由关节(Joint)相连(像肘,腕和踝)。

为了使虚拟人动起来,我们需要获得关节并且改变关节的角度,并且还必须知道关节角度的限制和段的质量。

一个H-Anim文件包括一批关节节点,这些关节节点形成了一个体系:

每个关节节点可以包含其他关节节点,也可以包含和这个关节有关联的段节点。

每一个段节点也可以包含许多site节点,它定义了和段节点的相对位置。

Site节点可以用来表示衣服和饰品。

每个段节点也可以包含很多Displacer节点,他详细指出了段中的哪些顶点具有某种特征。

文件还包括一个

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1