




免费预览已结束,剩余53页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业论文(科研训练、毕业设计)题 目:虚拟人步行模拟系统骨骼蒙皮的实现姓 名: 学 院: 软件学院系: 软件工程专 业: 软件工程年 级: 学 号: 指导教师: 职称: 年 月摘 要虚拟人步行模拟系统(Virtual Human Walking System)是计算机动画领域内的研究热点和难点。因为人物的运动过程是很复杂的,无论是人体关节的互相作用,还是皮肤之间的作用,都会随着运动的不同而不同。所以在制作真实感人体动画时,除了要有真实的人体运动和灵活的运动控制方法外,还需要有逼真的人体造型和皮肤变形效果,具有相当的难度。本论文先从两个方面对骨骼皮肤绑定技术进行研究:第一方面是对骨骼皮肤绑定过程的研究即用运动驱动皮肤产生动画的详细过程;第二个方面是对骨骼皮肤绑定算法的研究即在绑定过程中如何更新皮肤点的位置的方法。本论文进一步研究人体运动过程中皮肤的变形技术,对计算机动画中的真实感人体建模与皮肤变形技术进行较为全面的阐述,并分析比较了目前存在的皮肤变形方法的优缺点。最后本论文重点研究骨骼蒙皮动画的具体实现方法,详细介绍了如何利用3DS MAX软件与开源骨骼动画引擎Cal3D实现骨骼蒙皮动画在虚拟人步行模拟系统中的应用,并对本虚拟人步行模拟系统进行功能介绍和演示。关键词: 骨骼皮肤绑定 皮肤变形 骨骼蒙皮动画 AbstractVirtual Human Walking System is one of the most important research focuses, and remains problematic in the research field of computer animation. Because of the complexity of both the human body joints others , or between the skin , sports figures with the campaign will be different in different figures to realistic simulation exercise , so when creating realistic human animation , we need not only realistic human motion and its control techniques, but also effects of vivid body shapes and skin deformation. And it is quite difficult.The research of skinning technique can be divided into two parts , one is concerned with the skin-skeletal binding procedure , the other is concerned with the skinning algorithm; this thesis covers both sides , provides detailed description and makes my own contribution in between .In this thesis, a research of skin deformation is done and a detailed survey on existing methods for human-body modeling and skin deformation is given. Each method of skin deformation is described in detail covering the merits and shortcomings.Finally, I will introduce how to use 3DS MAX and Cal3D to implement skinned mesh animation in Virtual Human Walking System and introduce the function been actualized of it.Key words: skin-skeletal binding skin deformation skinned mesh animation 目 录第一章 引言11.1 研究虚拟人步行模拟系统的意义11.2 理论背景11.2.1 三维角色动画21.2.2 骨骼蒙皮动画21.3 虚拟人步行模拟系统国内外发展概况和趋势2第二章 系统的总体设计42.1系统开发环境42.2系统体系结构42.3 三维人体模型的建立52.3.1 利用3DS MAX建立人体模型52.3.2 人体模型的修改和调整52.4 三维人体模型骨骼与皮肤肌肉的绑定52.4.1 骨骼皮肤绑定算法的研究62.4.2 骨骼与皮肤特定关系设置和权值计算72.5 三维虚拟人皮肤变形技术8第三章 系统的详细设计123.1 人体骨架模型的建立123.2 Skin骨骼蒙皮143.2.1 Skin蒙皮系统与Physique蒙皮系统的比较143.2.2 Skin骨骼蒙皮流程展示153.3 人体模型的导出203.3.1 导出文件的格式说明223.3.2 人体模型的导出流程展示223.4 系统调用人体模型信息25第四章 系统的实现(运行)结果284.1 虚拟人步行模拟系统运行环境284.2 虚拟人步行模拟系统功能展示284.2.1 虚拟人骨骼蒙皮效果展示284.2.2 虚拟人换衣效果展示314.2.3 虚拟人动画效果展示34第五章 结束语36致谢37参考文献38ContentsChapter 1 Introduction11.1 Significance of Virtual Human Walking System11.2 Theoretical Background11.2.1 3D Character Animation21.2.2 Skinned Mesh Animation21.3 General Situation and Direction of VHWS at Home and Abroad2Chapter 2 General Design of System42.1 Development Environment42.2 System Architecture42.3 Creating of 3D Models52.3.1 Creating 3D models using 3DS MAX52.3.2 Modification and Adjusting of Models52.4 Skin-skeletal Binding of Virtual Human52.4.1 The Arithmetics of Skin-skeletal Binding62.4.2 Set the Relations between Bones and Skin72.5 Skin Deformation of Virtual Human8Chapter 3 Particular Design of System123.1 Creating the Skeleton of Virtual Human123.2 Skinned Mesh143.2.1 To Compare the Skin and Physique System143.2.2 Displaying of Skinned Mesh153.3 Import Models from 3DS MAX203.3.1 Introduction of File Format223.3.2 Displaying of 3D Models Importing223.4 Call the 3D Models by System 25Chapter 4 Demonstrated the Virtual Human Walking System284.1 Operating Environment284.2 Function of System284.2.1 Results Show of Skinned Mesh284.2.2 Results Show of Changing Clothes314.2.3 Results Show of Animation34Chapter 5 Conclusion36Acknowledgement37References38VII本科毕业论文 虚拟人步行模拟系统骨骼蒙皮的实现第一章 引 言1.1研究虚拟人步行模拟系统的意义计算机三维动画技术是指使用计算机技术来自动或者半自动地生成动画的技术。它是计算机图形学与艺术相结合的产物,伴随着计算机硬件技术的高速发展和计算机图形学理论研究的不断深入,三维动画技术尤其是实时三维动画技术已经取得长足进步。今天,计算机动画技术已经不止是动画创作的一种辅助手段,而且还是动画创作的必备工具。动画师可以借助计算机来创作出具有高度真实感的虚拟场景和数字人物。它不仅可以应用于电影特技、商业广告、电视片头、游戏开发等娱乐产业,还可以应用于计算机辅助教育、科学研究、军事模拟等许多领域。在计算机动画领域中,计算机动画的研究对象可以包括现实生活或虚拟世界中一切可以随时间而运动的物体如云雾、河流、各种植物、动物等,其中的角色建模和角色动画技术一直是学术界和产业界关注的焦点。这些内容主要是针对角色动画中的难点建模技术、运动控制技术、骨骼蒙皮技术展开的。其中建模技术研究的是角色模型层次及其之间的关系;运动控制技术研究的是运动学、动力学相关的数据生成和控制方法;骨骼蒙皮技术主要研究如何应用运动数据驱动角色模型生成动画的方法,使得角色模型变形适当,动画效果更加真实1。以上三个方面是角色动画技术在进一步发展中需要突破的技术关键。本文所讨论的骨骼与皮肤肌肉的绑定技术和皮肤变形技术就是针对其中第三个方面提出的,目的是想通过研究骨骼蒙皮动画相关技术来推动角色动画技术的进一步发展。1.2理论背景三维角色动画和骨骼蒙皮动画的相关内容和技术是本文研究的理论背景和应用环境,本节中将分别予以介绍。1.2.1 三维角色动画三维角色动画又称3D角色动画,是近年来随着计算机软硬件技术的发展而产生的一项新兴技术。三维动画软件首先在计算机中建立一个虚拟的世界,设计师在这个虚拟的三维世界中按照要表现的人物对象的形状尺寸建立虚拟人模型以及场景,再根据要求设定人物模型的运动轨迹、虚拟摄影机的运动和其它动画参数,最后按要求为人物模型赋上特定的材质,并打上灯光。当这一切完成后就可以让计算机自动运算,生成最后的画面了。三维角色动画技术模拟真实人物的方式使其成为一个有用的工具。由于其精确性、真实性和无限的可操作性,被广泛应用于医学、教育、军事、娱乐等诸多领域。目前三维角色动画制作涉及:3D游戏角色动画、电影角色动画、广告角色动画、人物动画等。特别是在影视广告制作方面,这项新技术能够给人耳目一新的感觉,因此受到了众多客户的欢迎。1.2.2 骨骼蒙皮动画(Skinned Mesh Animation)骨骼蒙皮动画是一种适用于具有骨架结构的脊椎动物的动画模拟技术。一般来说,骨骼蒙皮动画包含两部分信息:一是层次化骨架,另一个部分是蒙在骨架上的皮肤。用骨骼承载运动,用皮肤模型表达角色,再利用骨骼控制皮肤变形就达到了角色动画模拟的目的。本文的研究重点就是骨骼蒙皮动画。本论文通过对骨骼蒙皮动画的研究,将骨骼蒙皮动画中涉及数据归纳为四种:骨骼数据、皮肤网格数据、皮肤材质数据、运动数据。然后可以通过这四种数据的配合来实现骨骼蒙皮动画了。1.3虚拟人步行模拟系统国内外发展概况和趋势随着虚拟人技术由纯粹的理论研究逐渐走向实际应用,在医学、生物学以及军事、航天、体育、汽车、艺术等相关领域发挥越来越重要的作用,人们意识到非常有必要开发一套可以用来驱动虚拟人的应用程序开发包。目前国内外很多科研机构及公司利用自己的三维虚拟人运动及显示技术开发了一些非常实用的系统,如:美国的宾夕法尼亚大学设计的Jack;英国的诺丁汉大学设计的Sammie;克莱斯勒汽车公司开发的Cyberman;美国航空航天医学研究实验室开发的Combiman等等2。这些系统都有自己的显示及控制虚拟人运动的方法,它们的模型底层骨架结构也已经相当完美,但在虚拟人的几何外形表示和显示方面没有充分考虑美学方面的因素,逼真度不高。本系统借助Cal3D动画引擎及OpenGL强大的渲染功能,开发出适合于三维虚拟人的显示及运动控制的平台,它具有很高的渲染速度和良好的可扩展性,并能简单完成虚拟人复杂的运动控制。第二章 系统的总体设计2.1 系统开发环境本系统在Windows XP Professional操作系统平台上进行开发,所用开发工具为Microsoft公司的Visual Studio 2005、开源动画引擎Cal3D、Autodesk公司的3DS MAX软件、以及3Dlabs的OpenGL 2.0标准。2.2系统体系结构虚拟人步行模拟系统体系结构如下(图21): 图21 系统体系结构系统的主体功能主要分为四部分1. 人体骨架建立2. 人体步行运动的实现3. 步行路径规划4. 骨骼蒙皮2.3三维人体模型的建立2.3.1 利用3DS MAX 建立人体模型为表现虚拟人运动模拟系统的通过性,本系统采用三款由3DS MAX创建的人体模型(图22),分别代表了成年女性、成年男性、未成年男孩。图22 三款人体模型2.3.2人体模型的修改和调整现有的人体模型并不能立即为本系统所用。需导入到3DS MAX软件中进行适当的修改和调整,主要包括在虚拟人运动模拟系统中的位置调整、使用Skin骨骼蒙皮系统进行骨骼蒙皮、材质信息的添加以及纹理贴图设置。在经过这些修改和调整之后才可作为本系统所使用的人体模型。2.4三维人体模型骨骼与皮肤肌肉的绑定骨骼皮肤绑定技术主要解决的问题是使用运动数据驱动皮肤模型,得到骨骼动画。由于模型变形不当会产生失真,所以提高皮肤变形真实感和动画实时性就是绑定技术的目标。2.4.1骨骼皮肤绑定算法的研究骨骼皮肤绑定算法,是骨骼皮肤动画中的关键算法,是研究骨骼如何带动皮肤运动、更新皮肤点位置的方法3。(1.) 刚性绑定算法:刚性绑定算法是最早出现的骨骼皮肤绑定算法,它的基本思想是一个皮肤点由一个骨骼控制,并且与刚性绑定算法相关的皮肤也是分段皮肤。 动画数据中不再像顶点动画中由每帧的皮肤点数据组成,而是由骨骼,分段皮肤网格和骨骼运动数据组成。由于用骨骼承载运动,对动画的控制不再是皮肤点信息,转化为对底层的骨骼数据,骨骼皮肤关系及绑定算法的控制,控制层次得到提高。刚性算法的绑定公式为:V = MjLj-1V (2-1)其中V是模型的世界坐标系坐标,经过Lj-1矩阵转换到关节j的局部坐标系,得到局部向量;Mj是运动数据的转换矩阵,经过它,前面得到的局部向量可以转换成世界坐标系下的全局微向量,即新的皮肤点的位置V。(2.) 点绑定(柔性绑定)算法: 为了解决刚性绑定在关节处的失真问题,引入了柔性绑定思想4,即一个皮肤点的位置由相邻的所有关节决定。它与刚性绑定的最大不同是刚性绑定中每个皮肤点只受到一个骨骼关节的影响,而在柔性绑定中将受到多个关节的影响,并由多个关节位置来确定最终的皮肤点的位置。点绑定算法绑定公式:V = w1 M1L1-1V + w2 M2L2-1V + + wn MnLn-1V 且 w1+ w2 + + wn=1 (2-2)针对点绑定算法,在骨骼结构简单的地方使用小包围盒的方法可以取得好的效果,在骨骼结构复杂的地方使用大包围盒的方法可以取得好的效果。点绑定算法绑定结果还取决于皮肤模型的精细程度,越是精细的模型绑定效果就越好。(3.) 添加骨骼链绑定算法:为了减小关节旋转角,可以增加一段骨骼,由骨骼链本身的拓扑结构决定,每个关节变化角度将减半,如果添加一条骨骼链,则可以更好的平滑角度.所以在超过60度“安全”角度(即点绑定不易失真的角度)的关节增加骨骼链,可以将所有关节角度控制在安全范围内,在运动幅度大的关节处将获得比点绑定更好的效果。由Weber提出添加骨骼链算法对点算法进行改进,其算法基础在于Weber发现皮肤变形失真的直接原因在于关节运动角度过大(超过60度)。(4.) 骨粒串绑定算法:通过对骨骼链绑定算法进行拓展,将骨骼链的数量提高,当使得皮肤对单个骨粒的绑定可以退化为刚性绑定的时候,就得到了骨粒串绑定算法。通过拓展,使得关节旋转角度被N等分(N为关节处的骨骼粒数目),皮肤变形效果理论上可以得到最好的改善,因为骨骼关节处的变形角度足够小,而且由于骨骼数量足够多,所有的皮肤与骨骼之间的绑定都退化为刚性绑定,算法也比较简单。(5.) 骨骼绑定算法:骨骼绑定算法的本质在于关节的旋转角度不再进行等分操作,而是根据皮肤点与关节的关联权值计算皮肤点对应的旋转角度,然后利用这个角度计算得到皮肤点的真实位置。由于不再对结果点的位置进行插值,将保持皮肤的体积,解决点绑定中皮肤塌陷和打结的缺点。该算法的计算公式:V=MjRslerpLj-1V (2-3)其中V表示皮肤点的世界坐标系坐标,Lj-1表示到j关节局部坐标系下的转换矩阵,Rslerp是对关节旋转变换进行插值之后得到的结果(一般采用球面线性插值计算),Mj为j 关节的运动变换矩阵。2.4.2骨骼与皮肤特定关系设置和权值计算骨骼与皮肤的对应关系设定即关节与皮肤点之间的对应关系设定,目前主要有两种方法,第一种是高层的控制,即使用骨骼的作用域包围盒来决定皮肤点是否与该关节有联系,第二种是低层的控制,即可以让用户逐点的设定皮肤与关节的对应关系。本系统主要使用了第一种方式。逐点指定绑定关系是一种比较底层的方法,它允许用户处理每一个皮肤点,指定它与哪一个骨骼相关,设定相关的权值(相关权值表示骨骼对皮肤点的影响程度,权值越大表示影响越大)。这种方法给用户很高的控制权利,允许生成按照用户需要的任意的动画效果,但是缺点很明显,即时间复杂度太高了。另一种指定骨骼皮肤关系的方法是使用骨骼包围盒。骨骼包围盒,即表示骨骼作用范围的包围体,它的实现方法有很多,比如球体包围盒、圆柱体包围盒、轴向包围盒和非轴向包围盒等。选择何种包围盒来表示骨骼作用范围,需要综合考虑如下两个方面:1、 包围盒要能够尽可能的符合物体形状,并尽可能的小;2、 包围盒要能够容易表达,并尽可能的简单,以简化计算。目前三维角色模型的主要来源都是通过建模软件来完成的(3DS MAX等),所以可以利用这种三维模型本身的特点来提高绑定效率利用皮肤各个部分的子包围盒(OBB)加速它们骨骼绑定的作用域,如图23。 图23 包围盒骨骼绑定实际操作中,在骨骼皮肤关系指定时,利用皮肤网格本身的分段包围盒(OBB)指导骨骼包围盒的设定。使刚性包围盒设定过程转化为骨骼皮肤段的对应对程,可以消除的该时间瓶颈。最后,在骨骼皮肤对应关系设定好以后,要根据不同的公式计算他们之间的影响因子绑定权值。2.5三维虚拟人皮肤变形技术人体建模技术主要用于解决在给定姿态下人体的建模问题,而皮肤变形技术主要用于解决在运动过程中人体皮肤的变形问题,两者紧密相连,相互影响。三维人体皮肤变形是虚拟人合成研究的难点之一,主要原因有两个:一是获得逼真的皮肤变形比较困难。因为人体本身结构复杂,至今还没有一个生物力学或者图形学的模型能够完全逼近并仿真皮肤的真实特性,而且人眼对人体非常敏感,很容易发现皮肤模型的失真;二是实时性与逼真性互相制约和影响,为了获得逼真的皮肤变形往往需要牺牲变形的速度5。本文在总结大量文献的基础上,对皮肤变形提出了一种两重分类方法。首先按照三维人体几何表示方法将现有的皮肤变形方法分为三大类:基于面模型皮肤变形方法、基于体模型皮肤变形方法和基于层模型的皮肤变形方法;然后按照皮肤变形机制把表面模型皮肤变形方法分为四个子类:刚性变形、局部变形算子、骨架驱动变形和基于实例的插值变形。一、 基于面模型的皮肤变形技术现有的建模方法中,基于面模型方法只考虑两层结构:骨架层和皮肤层,而不考虑中间的肌肉层和脂肪层。骨架层用于表示人体的基本结构,一般使用层次式结构来表示,以方便对动画的控制。在骨架的外面是皮肤层,其变形由内部的骨架层来驱动。(1.) 刚性变形基于刚体模型的皮肤建模方法将直接由多边形网格表示的皮肤模型构建在骨架之上。皮肤模型和骨架之间是刚性连接的。动画过程中,骨架的运动带动相应的皮肤顶点运动。具体实现时,可以将皮肤顶点的全局坐标值转换为其所对应的骨骼所在的局部坐标系的局部坐标值。当骨骼运动时,由于其局部坐标系将不断更新,由骨骼的局部坐标系和对应皮肤顶点的局部坐标值,可以计算得到在新的姿态下皮肤的全局坐标值。上述计算对于每一帧计算一遍,就能得到皮肤随骨骼运动的变形效果。这种方法只需很少的计算资源便可得到快速的运动序列。但各部位皮肤网格彼此独立,在关节点附近相互贯通,运动时皮肤分段之间可看到明显的不连贯,同时皮肤网格被当做刚体处理,没有考虑肌肉的隆起等变形效果,所以逼真度不是很高。(2.) 局部变形算子法局部表面算子法6就是较早的非刚体皮肤变形方法,通过使用关于关节值的连续变形函数解决表面模型中刚性变形带来的大部分问题。局部变形算子JLD用于控制皮肤表面的变形,每一个JLD算子应用于人体皮肤表面上一些特定的区域称为算子域,JLD算子根据影响它的关节组的自然状态确定,算子本身的值是所有定义算子的关节角度的函数。局部变形方法存在以下问题:每个关节都要采用特定的变形函数;对于描述极具复杂性和可变性的人体解剖结构,单纯使用几个数学函数有很大局限性;对于确定的算法,建模人员无法方便控制变形。(3.) 骨架驱动变形骨架驱动变形(SDD)算法7中首先要给皮肤网格的每一个顶点关联一组关节,称为影响关节,并设定相应权值,动画中每一帧中的某一皮肤顶点P的新位置Pv就表示为影响关节变换的加权组合,如下式所示: (2-4)其中,wi是权值,wi=1对应各影响关节对该顶点的影响程度,Mi,Mi-1,Dress分别是第i个影响关节在新姿态和初始姿态下的变换矩阵,PDress是顶点P在初始姿态下的坐标。根据上式,就可以根据骨架运动,即关节的动态运动可以计算得到皮肤顶点P 的新位置Pv,这样便可以模拟人体关节运动中皮肤的变形。SDD技术简单、执行速度快且效果较好,视频游戏和电影制作中常采用这种方法,通过在关节层次结构中添加新的关节点,可以实现呼吸引起的胸腔变形或肌肉变形等变形效果。但SDD方法也存在一定的局限性:首先,指定各控制点的权值冗长乏味,要得到满意的变形效果需要大量手工工作;其次,对于一些相当灵活的身体区域,例如肩膀,某些骨架姿态下的变形严重失真。产生问题的原因是某些期望的变形结果并不一定存在于骨架局部坐标系所定义的子空间中,所以无论怎么改变蒙皮的权值参数,也无法得到满意的结果。(4.) 基于实例的插值变形方法基于实例的插值变形方法是另一种可以实现实时皮肤变形的有效方法。建模人员首先预定义一组关键形状,然后通过在关键形状间插值获得新的姿态下的皮肤形态。关键形状一般是特定骨架姿态下的皮肤三角网格,网格表面顶点可以通过光学三维扫描仪等数字化设备获得,或者通过二维图像三维重建和手工建模的方法获得!关键形态由研究人员任意指定,这些形态在骨架参数空间中不规则分配,形状变形可以看做离散数据插值问题。研究人员针对不同的关键形状获取方法和不同的插值方法进行了有益的尝试。姿态空间变形算法(PSD)8是插值方法的典型代表,结合了关键形状插值和骨架驱动变形两种方法,是一系列关键姿态间的骨架驱动的变形。其思想来源是几种类型的变形都可以统一地看做是底层骨架或者其他抽象的参数构成的姿态空间向皮肤所在子空间的偏移的映射。关键形态形成了一个抽象的空间,新的形态可以通过对这一空间的内插或外插得到。二、 基于体模型的皮肤变形技术体模型法主要可以分为隐式曲面法和体数据法。前者使用隐式曲面来定义包围在骨架上的皮肤模型,后者使用扫描到的体数据来表达人体模型。 基本的隐式曲面的造型方法可以分为两类:简单面元和骨架面元。前者将面元定义为点周围的面(如球或者椭球);骨架面元将面元定义在刚性的骨架如线或者多边形上。简单面元可以看成是骨架面元的特例。 体数据法首先对体数据进行细化,然后连接细化后的体元从而得到体骨架。体骨架建立以后,就可以它驱动体数据进行运动。可以使用关键帧动画法或者运动捕获数据驱动法来驱动体骨架的运动,然后由体骨架的姿态恢复出体数据模型。对于每一帧都需要恢复一次体数据模型以便生成最终的动画效果。三、 基于层模型的皮肤变形技术多层模型采用基于解剖学的皮肤变形方法,皮肤变形的基础是符合人体解剖结构的三维人体模型的构造,变形的逼真性依赖于骨架、肌肉和组织的精确建模。在层次式模型中,将人体分解成骨骼层、肌肉层、脂肪层和皮肤层。对它们依次建模,并由内到外进行传递最终实现皮肤的变形效果。层次式人体建模因为模拟了人体的真实结构和驱动机制,并能够模拟肌肉的变形,从而能产生逼真的皮肤变形效果。层次式建模的困难性在于设计肌肉以及仔细地调节每块肌肉使之适合皮肤的形状,所以非专业用户感觉门槛较高,专业人员也觉得设计费时费力。第三章 系统的详细设计3.1人体骨架模型的建立我们的首要问题就是要构造出逼真的人体模型。 人体的外形主要是由人体的骨骼结构和附着在骨骼上的肌肉运动决定的,在人体运动过程中,皮肤的外形随着骨骼的弯曲和肌肉的伸展与收缩而变化。因此,我们可以将人体的运动表现为人体骨架的运动9。这里给出本系统对人体骨架从理论到实践的实现过程,图31为一个简单的人体骨架模型,图32为人体骨架的几何模型,图33为3DS MAX制作的人体骨架模型,图34为本系统产生的人体骨架模型。 图31 一个简单的人体骨架模型图32 人体骨架的几何模型 图33 3DS MAX制作的人体骨架模型 图34 系统产生的人体骨架模型 3.2 Skin骨骼蒙皮对于三维人物动画而言,首先是使用建模工具创建人物模型,然后创建人物模型的骨骼,接下来便是将模型与骨骼绑定在一起,绑定的过程称为“蒙皮”。骨骼被蒙皮后,可以使人物的模型随着骨骼一起运动,并在骨骼运动时产生相应的变形10。骨骼在蒙皮过程中,所处的姿势称为Bind Pose。蒙皮后,骨骼的运动会引起皮肤的变形。但是,有时会出现不恰当的变形,这就需要对骨骼或皮肤做相应的修改,此时可以运用相关命令使骨骼恢复绑定姿势,然后断开骨骼与皮肤之间的关联。3.2.1 Skin蒙皮系统与Physique蒙皮系统的比较对于骨骼蒙皮,3DS MAX里有两种方法:Skin和Physique。前者对应自创骨骼,后者对应3DS MAX里的Character Studio两足动物骨骼。两者都是创建好模型和创建好骨骼,然后把骨骼知模型一一对位好,然后在模型上加入Skin或是Physique调节封套。即每个骨骼对皮肤产生的影响(有完全影响,如头部。不完全影响,如关节。及不影响,如头部和手臂等不关联的位置)。Physique蒙皮系统在关节处理上,调节Link层级并不能很好的解决关节问题。但是Skin的蒙皮系统设置FFD的功能 就很好的解决这个问题,可是Skin的封套(Envelope) 调节起来又不不是很方便。3.2.2 Skin骨骼蒙皮流程展示1、首先在3DS MAX 窗口中根据角色的位置,建立Bipe 骨骼。如图35。图35 建立Bipe 骨骼2、在动画面板中设置Bipe的各项参数,使其与角色匹配。如图36。图36 设置Bipe的各项参数3、在Front 和 Right 视图中将Bipe对齐角色的四肢和关节。如图 37。图37 对齐角色的四肢和关节4、完成Bipe对齐后,一定要退出Figure模式。 5、为角色模型添加Skin修改器。如图38。图38 添加Skin修改器6、在封套参数的卷展中,点击Add按钮,添加Bipe作为模型的骨骼。如图39。 图39 添加Bipe作为模型的骨骼7、选择所有Bipe,右键进入属性设置。将Bipe 都改成用 Box 显示。这样可以方便后面的Bipe动作姿态调整。如图310。图310 将Bipe 都改成用 Box 显示8、单独显示角色,在Envolope(封套)层级下,对Bipe骨骼产生的封套进行设置。如图311。图311 对bipe骨骼产生的封套进行设置9、封套好后对Bipe设置一些肢体变化的极限动作,以便我们观察蒙皮效果。如图312。图312 设置肢体变化的极限动作10、这时再显示角色模型,发现蒙皮效果很糟糕(如图313),这是因为随着肢体的运动,关节处的模型变形扭曲严重。需要进一步调整封套对点的权重影响。图313 调整前的模型变形效果11、通过不断的调整封套权重,关节的变形效果比较满意。如图314。 图314 调整后的模型变形效果12、在对每个关节的点进行调整,得到合理的关节模型变形后,蒙皮工作结束。3.3人体模型的导出本系统使用Cal3D提供的3DS MAX 导出插件来导出人体模型。在导出模型之前,需要确认此模型采用满足Cal3D要求的纹理贴图,即要求角色的每张材质必须有材质编辑使用的插槽(slot),并且材质需要正确命名,带有从0开始的数字或标签的名字,例如 hair 0、face 1、body 2、arm 3 。如图315所示。 图315 正确命名材质同时,还要求贴图所用的图片必需是TGA格式,而且尺寸要求为2的指数倍数(如图316),不然在OpenGL中渲染时,系统会变得特别卡。 图316 贴图需要的图片示例3.3.1 导出文件的格式说明 Cal3D是一款较为先进的开源骨骼动画引擎,它是基于关键帧的骨骼动画,它把数据分为三部分:骨骼(skeleton),网格(mesh)和动画(animation transformation)。由一个文本配置文件记录,每个动画文件都是独立的,一个角色如果有5个动作时,就会有5个相应的动画文件11。通过Cal3D提供的3DS MAX插件导出的文件可分成四种格式类型:1. cal3d skeleton file (.csf) 骨骼文件2. cal3d animation file (.caf) 动画文件3. cal3d mesh file (.cmf) 网格文件4. cal3d material file (.crf) 材质文件3.3.2 人体模型的导出流程展示1、导出骨架模型:首先要确保Biped 处于体型模式,选择骨架质心(骨盆)。在文件菜单中,点击“导出”,选择Cal3D骨架输出器,设置文件名称后输出(如图317所示)。 图317 选定骨架质心然后会出现一个对话框,将会显示所有选定的Biped骨骼(图318),按“下一步”,全部文件输出后就得到Cal3D骨架了。 图318 导出骨架2、导出材质:在“导出”的下拉菜单中选择Cal3D材质输出器,依次输出该人体模型中使用到的所有材质,如图 319所示。 图319 导出材质3、导出网格:在“导出”的下拉菜单中选择Cal3D网格输出器,依次输出该人体模型中使用到的所有网格,例如输出人体模型头发,如图 320所示。 图320 导出网格当改变人体模型所使用的材质时,需要重新输出材质和网格,这是因为对应标签同时存在网格和材质的 Cal3d文件里面。4、导出动画:利用“导出”的下拉菜单中的Cal3D动画输出器来输出动画。在输出动画时,需要通过对话框指定骨架,当输出动画时,要确保Biped 不是“体形模式” 如图321,然后需要设定FPS 和关键帧输出 如图322。 图321 导出动画 图322 设定FPS和关键帧3.4系统调用人体模型信息将人体模型的骨骼,各种材质,所有网格及动画信息导出后,就需要建立一个 .cfg 的配置文件,记录所有组成角色的信息,以便系统调用,这可以使用记事本手工编辑。例如:# cal3d model configuration file# model: masha#path=./cal3d_data/masha2/scale=1.0skeleton=skeleton.csfanimation=walk.cafanimation=run.cafanimation=ballet.cafmesh=hair1.cmfmesh=body.cmfmesh=sweater1.cmfmesh=pants.cmfmesh=skirt.cmfmesh=shoesL.cmfmesh=shoesR.cmfmaterial=hair1.crfmaterial=body.crfmaterial=sweater1.crfmaterial=others.crfmaterial=pants.crf这样,本系统就可以通过以下代码来调用该模型的所有信息了。 / load masha model std:cout Loading masha model . setPath( m_strCal3D_Datapath + / + masha/ ); if(!pModel-onInit(m_strDatapath + masha.cfg) delete pModel; std:cerr Model initialization failed! (masha) std:endl; return false; m_vectorModel.push_back(pModel); std:cout std:endl;第四章 系统的实现(运行)结果4.1 虚拟人步行模拟系统运行环境 本系统要求在Windows XP Professional操作系统下运行,在本系统运行过程中会调用OpenGL的动态链接库,所以请先将OpenGL开发库安装到计算机上,运行过程如图41所示。 图41 运行系统4.2 虚拟人步行模拟系统功能展示4.2. 1 虚拟人骨骼蒙皮展示 1、显示人体模型骨骼,如图42。 图42 显示人体模型骨架2、为人体模型骨骼蒙上网格,如图43。 图43 为人体模型骨骼蒙上网格3、给人体模型添加材质信息,如图44。 图44 给人体模型添加材质信息4、给人体模型添加光照,如图45。 图45 给人体模型添加光照4.2. 2 虚拟人换衣系统展示 本系统可以实现为虚拟人体模型换衣服,其原理是先在3DS MAX中为虚拟人体模型设计几套衣服,然后根据人体骨骼蒙皮的方法,把衣物看成人体皮肤的一部分,这样就可以实现虚拟人换衣过程,如下图所示。 图46 女性服装样式1图47 女性服装样式2图48 男性服装样式1图49 男性服装样式2图410 男孩服装样式1 图411 男孩服装样式24.2. 3 虚拟人动画展示图412 步行动画图413 舞蹈动画图414 表演功夫动画第五章 结束语虚拟人步行模拟系统是一个应用前景光明的系统,随着虚拟人技术由纯粹的理论研究逐渐走向实际应用,在医学、生物学以及军事、航天、体育、汽车、艺术等相关领域发挥越来越重要的作用,人们意识到非常有必要开发一套可以用来驱动虚拟人的应用程序开发包。尽管国外(美国、英国等)已有相关类似的软件问世,但国内并没有这样很成熟的软件,目前国内正亟待这样的一个系统的出现,相信虚拟人步行模拟系统在中国的商机是无限的。虚拟人步行模拟系统功能强大,可扩展性强,只要是用3DS MAX 软件建立的三维虚拟人体模型,经过正确的骨骼绑定,骨骼蒙皮,以及材质贴图的正确设置以后,都可以通过Cal3D提供的3DS MAX插件导出,并能导入本系统显示出来。这样,你可以使用3DS MAX自由地设计你所想要动画的效果,然后通过本系统你设计的动画将变成可控制的动画,本系统将引导你迈入栩栩如生的虚拟世界。在我们的毕业设计中虽不能将此系统的所有功能都完全实现,但经过我们不懈的努力以及刻苦的钻研,已经将虚拟人步行模拟系统的主要功能实现,希望在今后的学习生活中,我们能更加完善此系统,取得更好的成绩!致 谢在完成毕业论文之际,我满怀感慨和谢意。大学四年是我自觉成长最大的四年,无论是对我的专业学科还是对我的人生态度,都有着不可磨灭的重大影响。我首先要感谢我的指导教师副教授,他具备高超的学术水平、不懈的治学追求和严谨的学术态度,这些都让我受益良多。他对我的严格要求和细心指点是我巨大的源动力。其次我要感谢我的父母,他们对我的殷殷期望和谆谆教诲是我四年来前进的重要动力,他们教导我如何生活、如何学习,使我明白,只有不断的学习才能让自己的人生充满精彩与快乐。这里我要感谢为我做毕业设计提供大量物质和精神帮助的厦门大学创意产业小组,特别是研究生张寒晖师兄,他常和我一起讨论,并在我做毕业设计的过程中给予了我很大的帮助与鼓励。我还要感谢与我同一小组的吴俊峰同学,他在3DS MAX动画设计方面帮了我很大忙。我们一起解决研究中的困难,一起分享成功后的喜悦。需要感谢的人太多,我虽不能一一列举,但是,我会永远铭记他们对我的无私关心和热情鼓励。参考文献1 吴小毛, 马利庄, 顾宝军. 计算机动画中人体建模与皮肤变形技术的研究现状与展望J. 中国图象图形学报, 2007,12(04):93-962 孟淑芳, 陈福民. 基于D3D的骨骼蒙皮动画的实现方法研究J. 计算机应用与软件, 2007,24(01):42-463 李想. 骨骼皮肤绑定技术的研究及实现D. 浙江大学, 2006:22-284 Doug L. James, Christopher D. Twigg. Skinning Mesh AnimationsD. ACM Transactions on Graphics, 2005,7(24):399-4075 李艳, 王兆其, 毛天露. 三维虚拟人皮肤变形技术分类及方法研究J. 计算机研究与发展, 2005,42(05):888-8966 J. Shen. Human body modeling and deformationsD. Swiss Federal Institute of Technology, 1996,18(05):120-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教师招聘之《幼儿教师招聘》押题练习试卷附参考答案详解【研优卷】
- 2025广东共青团江门市委员会选调参照管理单位工作人员1人考试模拟试题及答案解析
- 2025年网络安全在云计算平台中的安全架构与防护策略报告
- 2025年教育产业投资并购动态:整合策略研究报告全景解读
- 合并前列腺炎的前列腺增生组织中IL-17、IL-8表达的深度解析与临床意义探究
- 民营经济面试题库及答案
- 煤厂会计面试题及答案
- 律协考核面试题库及答案
- 2025年教师招聘之《小学教师招聘》考试题库附答案详解(预热题)
- 教师招聘之《小学教师招聘》过关检测及完整答案详解【易错题】
- 2025年大学生心理知识竞赛考试题库(共100题含答案)
- 无肝素透析考试题及答案
- “趣”破“蛐蛐”小妙招社交魔法课主题班会
- 《数据分析与决策》课件
- 苏教版五年级数学上册单元测试题及答案全册24套
- 《诗经之采葛》课件
- 2025年中国氢化棕榈油市场深度评估及投资方向研究报告
- 幼儿园酸奶牛奶采购合同
- 《中药提取物生产技术》课件-中药常用的粉碎方法
- 政治学原理(第三版)课件 第1章 政治的性质与核心问题;第2章 政治学:研究方法与学科特点
- 开放北二期 有限空间作业专项方案 22.5.16
评论
0/150
提交评论