论文部分内容阅读
逼真人体运动合成技术是虚拟现实领域内一个非常重要的问题,在增强虚拟环境的逼真性和真实感方面起到重要的作用。它不仅具有重大的理论意义,还具有广阔的应用前景。首先,人体运动合成技术是一个交叉性很强的研究领域,涉及到计算机图形学、物理学、人工智能、自动化控制等多方面的知识,该项研究的进展必然带动这些领域开展合作,并在交叉学科方面创造出新理论,新方法。其次,人体运动合成技术可以广泛用于电影制作、游戏娱乐、人机工程、体育运动训练等多个领域,具有巨大的应用前景。
本文针对逼真人体运动合成技术中几个关键问题进行研究,即:基于实例数据的运动编辑方法、基于体分解的包围体层次构建方法、基于体的碰撞检测方法和基于ISBVH优化的方向穿透深度算法,取得如下研究成果:
1.提出了一种基于实例数据的运动编辑方法。
所谓的运动编辑,就是对给定的运动序列进行修改,满足不同虚拟人模型和虚拟环境的需求。捕获数据来源于真实的人体运动,包含着丰富的运动信息,编辑捕获数据能再生出各种复杂、逼真的人体运动。
本文提出一种基于实例数据的运动编辑方法,包括基于实例数据构建末端约束轨迹算法和基于卡尔曼滤波的约束求解算法两方面内容。以捕获数据为实例,充分利用实例数据包含真实人体运动信息的特点,从关节角度和末端约束轨迹两个方面同时出发,求解与实例数据最接近的目标运动。实验结果表明,与国内外现有的研究成果相比,基于实例数据的运动编辑方法不仅能在目标运动中保留实例数据的运动特征,合成自然、合理且具有个性化的运动。同时,基于实例数据构建末端约束轨迹算法的提出,保证了合成的目标运动具有运动相关性,不会出现抖动、突跳等不真实的现象。另外,该方法能以固定速率处理任意长度的运动片段,为快速合成自然,合理且具有个性化的人体运动提供了一种切实可行的解决方案。
2.提出了一种基于体分解的包围体层次—ISBVH,在此基础上,针对人体模型,提出HISBVH的构建方法。
包围体层次(Bounding Volume Hierarchy,BVH)是提高碰撞处理问题计算效率的一种有效手段。已有的包围体层次均基于对象表面的基本几何元素执行层次划分,造成对象内部几何信息的丢失。这类方法适合“剔除”操作,排除不可能发生重叠的对象,但用于处理虚拟人这种复杂的几何模型,在肢体间相互重叠的情况下,碰撞检测性能急剧下降。本文提出一种新的、基于体分解的包围体层次—内部空间包围体层次(JSBVH)。ISBVH能正确地逼近对象在三维空间所占据的体积,不会丢失任何内部空间的几何信息,而所保留的内部空间将会提高碰撞处理方法的计算性能。实验结果表明,ISBVH具有较好的紧密性,构建复杂度仅为O(nlogn),低于具有相似紧密性的OBB包围体层次o(nlog2n),并在总体性能上优于现有的包围体层次。
基于ISBVH,并结合虚拟人链状结构特点,本文提出适用于虚拟人模型的包围体层次—HISBVH。HISBVH能在人体运动姿态改变时快速地更新,在最极端的情况下,即对于包含n个基本几何元素的对象,其包围体层次树的每个叶子结点仅包含一个基本几何元素,整个包围体层次具有(2n-1)个结点,并且这(2n-1)个结点均被更新,HISBVH的更新复杂度仅为O(n),远低于其它算法需要的O(nlogn)或O(nlog2n)。
3.提出了一种基于体的碰撞检测方法。
对于虚拟人这种复杂的链状模型,精确检测运动时是否存在肢体间自碰撞需要非常高的计算代价,已成为影响系统性能的瓶颈。本文利用ISBVH具有内部空间信息的特点,提出了一种基于体的碰撞检测方法。与已有方法相比,无须遍历整个包围体层次,通过内部空间的重叠,就能快速报告碰撞是否发生,使相交检测的计算量呈指数级下降,显著提高了计算性能。实验证明,对于两个具有22,856个三角面片的复杂虚拟人模型,在极端的情况下执行碰撞检测,在相同计算机上,经典的、基于OBB包围体层次需要117ms,而基于体的方法最多需要7.74ms的检测时间,能够在不简化虚拟人模型复杂度,不降低检测精度的前提下,实时检测虚拟人的自碰撞。另外,利用ISBVH基于体分解的特点,能在碰撞检测阶段获得一个部位穿透到另一个部位的潜在穿透体,为下一步的方向穿透深度计算提供指导。
4.提出了一种基于ISBVH优化的方向穿透深度算法。
方向穿透深度指沿给定方向分开两相交多面体需要的最小距离,是碰撞规避研究中最基础、最重要的信息,也是近年来图形学领域内的热点问题之一。
对于虚拟人这种复杂的链状结构模型,只有精确计算其全局的方向穿透深度才能正确的规避碰撞,生成合理的运动。但现有的方向穿透深度计算方法复杂度高,处理具有几千个三角面片的多面体模型需要几秒钟的时间,难以满足虚拟环境对交互性的需求。本文提出一种基于ISBVH优化的方向穿透深度算法。实验结果表明,对于两个具有22,856三角面片的复杂虚拟人模型,在大面积重叠这种极端的情况下,计算方向穿透的时间仅为0.22秒,计算性能优于现有的方法。