APP下载

虚拟现实技术中基于DirectX的骨骼蒙皮技术

2009-06-21田丽华

中小企业管理与科技·下旬刊 2009年12期
关键词:虚拟环境蒙皮骨骼

田丽华 姚 鑫

摘要:本论文研究的是基于DirectX技术的虚拟现实VR(Virtual Reali-ty)技术。使用骨骼蒙皮动画原理和结构分析,以vC++为开发工具,在关节动画的基础上。利用顶点混合《vertex Blend)技术实现了一个小型3D模型的蒙皮。

关键词:虚拟现实技术基于DirectX骨骼蒙皮

1虚拟现实基本概念:

虚拟现实(Virtual Reality,简称V R),是一种基于可计算信息的沉浸式交互环境。具体地说,就是利用三维图形的生成技术、多传感的交互技术以及高分辨率的显示技术,生成三维逼真的视、听、触觉一体化的特定范围的虚拟环境。使用者通过特殊的头盔、数据手套等传感设备,或利用键盘、鼠标等输入设施,便可以进入虚拟空间,成为虚拟环境中的一员,与虚拟环境进行实时交互、感知和操作虚拟世界中的各种对象。从而产生亲临等同真实环境的感受和体验。

一个完整的虚拟现实系统由下面三部分构成。

1.1虚拟环境产生器。一个能产生三维世界的软、硬件环境是VR系统的核心部件。它的主要功能是接收被试相关的运动信息(如头部、眼、手等),并融合成三维立体图像,同时进行三维声音合成和发出触觉、压力等反馈信号。

1.2输入输出设备。其目的是使被试能通过视觉、听觉和触觉等方式与虚拟环境实现信息的交互作用。主要包括头盔显示器、操纵杆和数据手套等,它们是被试与虚拟环境建立联系的关键。

1.3数据接口。其作用是将虚拟环境产生器、输入输出设备以及被试等有机连接成一体,这不仅包括硬件协配问题,也包括软、硬件联调以及人机界面等技术内容。

2虚拟现实的基本特征:

VR技术的发展始终围绕它的三个特征而前进,即沉浸感、交互性和构想。

2.1沉浸感。是指计算机生成的虚拟世界能给人一种身临其境的感觉,如同进入了一个真实的客观世界。

2.2交互性。是指人能够很自然地跟虚拟世界中的对象进行交互操作或者交流。计算机能根据使用者的头、手、眼、语言及身体的运动,来调整系统呈现的图像及声音。使用者通过自身的语言、身体运动或动作等自然技能,就能对虚拟环境中的对象进行考察或操作。

2.3构想。由于虚拟现实系统中装有视、听、触、动的传感及反映装置。因此可使人沉浸其中并且获取新的知识,提高感性和理性认识.从而深化概念并萌发新意,启发人的创造性思维。

3骨骼蒙皮技术

3.1理解骨骼和骨骼层次结构首先要明确一个观念:骨骼决定了模型整体在世界坐标系中的位置和朝向。模型又有静态模型和动画两种。静态模型没有骨骼,在世界坐标系中放置静态模型时,只要指定模型自身坐标系在世界坐标系中的位置和朝向即可。在骨骼动画中。不是把Mesh直接放到世界坐标系中,Mesh只是作为Skin使用的,是依附于骨骼的,真正决定模型在世界坐标系中的位置和朝向的是骨骼。在渲染静态模型时,由于模型的顶点都是定义在模型坐标系中的,所以各顶点只要经过模型坐标系到世界坐标系的变换后就可进行渲染。而对于骨骼动画,我们设置模型的位置和朝向,实际是在设置与骨骼的位置和朝向,然后根据骨骼层次结构中父子骨骼之间的变换关系计算出各个骨骼的位置和朝向,然后根据骨骼对Mesh中顶点的绑定计算出顶点在世界坐标系中的坐标,从而对顶点进行渲染。在骨骼动画中,骨骼才是模型主体,Mesh不过是一层皮,一件衣服。

蒙皮(skinning)就是给物体附上皮肤。三维网络构成物体,如人形时,在关节与关节之间会出现断裂的现象,与真人有很大的差别。消除这种断裂现象的技巧就是蒙皮技巧。就像人的骨架一样,一旦有了蒙皮就将看不到关节了。蒙皮是一种高级编程技巧,没有蒙皮就会严重影响视觉效果。对于三维人物动画而言,首先是使用建模工具创建模型,然后创建人物模型的骨骼,接下来便是将模型与骨骼绑定在一起,绑定的过程称为“蒙皮”。骨骼被蒙皮后,可以使人物的模型随骨骼一起运动,并在骨骼运动时产生相应的变形。

在关节动画的基础上,利用顶点混合(Vertex BIend)技术,对于关节附近的顶点,由影响这些顶点的两段{或多段)骨骼运动,分别赋以权值,共同决定顶点位置。相当于在骨骼关节上动态蒙皮,有效解决了裂缝问题。

3.2骨骼蒙皮动画原理和结构分析骨骼蒙皮动画(SkinnedMesh)包含骨骼(Bone)和蒙皮(Skinned Mesh)两个部分。Bone的层次结构和关节动画类似,Mesh则和关节动画不同:关节动画中是使用多个分散的Mesh,而Skinned Mesh中Mesh是一个整体,也就是说只有一个Mesh.实际上如果没有骨骼让Mesh运动变形,Mesh就和静态模型一样了。骨骼蒙皮动画技术的精华在于蒙皮。所谓的皮并不是模型的贴图,而是Mesh本身,蒙皮是指将Mesh中的顶点附着(绑定)在骨骼之上,而且每个顶点可以被多个骨骼所控制,这样在关节处的顶点由于同时受到父子骨骼的拉扯而改变位置就消除了裂缝。

为了有皮肤功能,Mesh还需要蒙皮信息,即Skin数据,没有SkIn数据就是一个普通的静态Mesh了。Skin数据决定顶点如何绑定到骨骼上。顶点的Skin数据包括顶点受哪些骨骼影响以及这些骨骼影响该顶点时的权重(weight),另外对于每块骨骼还需要骨骼偏移矩阵(BoneOffsetMatrix)用来将顶点从Mesh空间变换到骨骼空间。骨骼动画中的Mesh特指这个皮肤Mesh,模型是指骨骼动画模型整体。骨骼控制蒙皮运动,而骨骼本身的运动当然就是动画数据了。每个关键帧中包含时间和骨骼运动信息,运动信息可以用一个矩阵直接表示骨骼新的变换,也可用四元数表示骨骼的旋转。也可以随便自己定义,只要能让骨骼动就行。除了使用编辑设定好的动画帧数据,也可以使用物理计算对骨骼进行实时控制。

4结束语

利用骨骼蒙皮技术,实现了一个三维物体在动画过程中连续、自然的发生位移,给人以视觉上的满足。

猜你喜欢

虚拟环境蒙皮骨骼
虚拟环境中空间压缩问题的影响与改善
一种适用于变弯度机翼后缘的蒙皮设计方法
不同材质客车顶蒙皮与前后围蒙皮接缝处理方案
做家务的女性骨骼更强壮
前庭刺激对虚拟环境三维空间定向的影响及与空间能力的相关关系
三减三健全民行动——健康骨骼
如何通过虚拟环境有效管理Python第三方库
运载火箭框桁蒙皮结构铆接壳段多余物分析与控制
飞机蒙皮上的幽默
骨骼和肌肉