专利名称:一种虚拟人群运动的三维可视化方法
技术领域:
本发明涉及虚拟现实领域,特别涉及一种虚拟人群运动的三维可视化方法。
背景技术:
虚拟人群运动的可视化是指将人群的运动数据显示在屏幕上,当运动数据赋予某个个体后,在屏幕上通过观察个体的运动,可以了解到运动数据产生的宏观或微观效果。对大规模人群运动进行三维可视化,可以在计算机空间中生成逼真的虚拟人群,并从各个角度全方位的观察各种场所、各种情况下的人群运动情况,有着非常广泛的应用前景。例如在大型建筑(如火车站、体育馆等)设计中,设计师必须考虑在各种紧急情况(如火灾、爆炸、踩踏等)发生时大规模人群的表现,利用大规模虚拟群体运动的三维可视化技术,可以方便的在设计阶段对建筑进行公共安全评价。在电影制作中,也经常需要逼真的展现大规模动态人群的场景,如电影《兄弟连》中展现盟军登陆时伞兵大规模从天而降的效果。在游戏制作中,游戏动画师也经常需要在游戏场景中渲染大量游戏角色的群体运动,如《魔兽世界》中铺天盖地的怪兽运动场景。因此,在游戏/影视制作、建筑设计、公共安全评估等领域都需要一种虚拟人群运动的三维可视化方法。
大规模虚拟人群运动的三维可视化方法,需要同时满足逼真性和实时性需求。一方面,需要使用丰富的虚拟角色模型,并且每个虚拟角色模型都能够被独立控制并完成指定的动作,以满足用户对于逼真性的需求;另一方面,模型载入、驱动和渲染的内存开销和计算开销要控制在一定范围内,以保证用户能够实时地获得可视化结果。此外,还需要考虑易用性、通用性和建模成本等方面的要求。由于技术上的难度,目前还没有通用的大规模虚拟人群运动的三维可视化方法。
发明内容
本发明的目的是克服现有技术无法实现对大规模虚拟人群运动进行三维化可视化操作的缺陷,从而提供一种高效、通用、且建模成本低的方法。
为了实现上述目的,本发明提供了一种虚拟人群运动的三维可视化方法,包含以下步骤步骤10)、分析系统中要出现的虚拟人群,将个体作分类,为每种分类按外形特征建立一个三维人体模型作为模板模型,得到模板模型库;并根据每个模板模型的特征,选择一组派生部位,定义每一派生部位所能用到的材质,加入到材质库中;步骤20)、捕获或者手工生成人体运动数据,并将运动数据输入到运动数据库中;步骤30)、合成运动数据;步骤40)、对模板模型和合成的运动数据进行绘制预处理;步骤50)、输入描述人群运动的简单脚本数据,脚本中的信息包括群体中每个个体所属的类型、每个个体当前的位置、每个个体当前的运动状态;步骤60)、根据步骤50)中输入的数据,从模板模型库中选择模板模型,并结合材质库实现模型的派生,生成虚拟个体;步骤70)、对步骤60)生成的虚拟个体,根据该个体在步骤50)中输入的运动状态信息,从所述的运动数据库中选择运动数据,并计算该运动数据随时间的变化,以驱动虚拟个体的运动;遍历群体中的所有虚拟个体,生成动态的虚拟人群;步骤80)、实现对虚拟人群的群体渲染。
上述技术方案中,在步骤10)中,所述的将个体作分类是按照个体的年龄、性别对人群进行划分。
上述技术方案中,在步骤10)中,所述的派生部位选择人体所穿着的服装、发型、鞋帽。
上述技术方案中,所述的步骤20)包括步骤21)、统计系统中的虚拟个体可能出现的运动状态;步骤22)、利用运动捕获设备采集或使用运动生成和编辑软件手工生成步骤21)中所统计得到的每种运动状态的人体运动数据;在所述的步骤22)中,捕获运动数据采用基于电磁的或基于光学的或基于声学的运动捕获方法,所述的运动生成和编辑软件包括专用软件3dsmax或Maya或SOFTIMAGEIXSI或Blender。
上述技术方案中,在所述的步骤30)中,所述的合成运动数据采用美工手调的方法或采用运动融合、运动拼接、运动重定向的方法。
上述技术方案中,在步骤40)中,对模板模型和合成的运动数据进行绘制预处理包括41)、对每个模版模型,对每个此模板模型可执行的动作数据,对此动作数据的每一帧,计算对应此帧的三维模型;42)、对步骤41)中得到的三维模型,进行绘制预处理;其中,所需的绘制预处理方法包括基于图像的绘制预处理方法、基于点采样的绘制预处理方法、基于网格动画的预处理方法、基于层次细节技术的预处理方法。
上述技术方案中,所述的步骤60)包括步骤61)、针对系统虚拟人群中的每个个体,根据在步骤50)所输入数据中的个体的类型信息,从模板模型库中选择相应的模板模型;步骤62)、判断当前个体是否首次出现,若是,执行下一步,否则,执行步骤64);步骤63)、个体首次出现,尚未分配材质,从所述的材质库中随机选择一套材质,并在内存中存储材质序号,然后执行步骤70);步骤64)、个体已经分配材质,直接从内存中读取该模板模型的材质序号,并使用相应的材质,进行渲染。
上述技术方案中,所述的步骤70)包括步骤71)、针对群体中的每个个体,根据步骤50)的输入数据中该个体的类型信息和当前时刻该个体的运动状态信息,从运动数据库中选择相应的运动数据;步骤72)、根据输入数据中该个体当前时刻、上一时刻和下一时刻的位置信息,求取该个体当前的运动速度和运动方向;步骤73)、根据从运动数据库中选出的各时刻运动数据的位移向量、个体各时刻仿真数据的位移向量、个体上一时刻所选取的运动数据帧索引,计算当前时刻个体的运动数据,所述的运动数据包括个体当前的位置、身体各个部分的运动姿态;步骤74)、利用步骤73)中得到的当前时刻运动数据和步骤72)中得到的运动方向驱动步骤60)中生成的虚拟个体;步骤75)、遍历群体中的全部个体,生成动态虚拟群体。
上述技术方案中,所述的步骤80)中所叙述的群体渲染采用的方法包括基于图像的绘制方法、基于点采样的绘制方法、基于网格动画的绘制方法、基于层次细节技术的绘制方法。本发明的优点主要表现在1、系统的输入较为简单,主要是不同时刻下个体的状态、位置等脚本数据,可以方便的嵌入到其他应用系统或被它们调用,具有较好的通用性;2、通过使用骨骼蒙皮、运动捕获等技术,系统可以自由灵活地控制群体中的每个个体,满足用户对于人体运动逼真性的要求;3、通过使用模型派生技术,能够从较少的模型模板派生出大量的个性化模型,最大程度的降低三维群体模型的建模成本,并节省模型载入、存储的内存开销和计算开销;4、通过使用运动变形技术,用较少的运动数据就可以产生逼真的运动效果,从而节省模型驱动的内存开销和计算开销;5、通过使用基于点采样的渲染等技术,实现了大规模人群数据的三维实时渲染。
图1为本发明的虚拟人群运动的三维可视化方法的流程图;图2为本发明的一个实施例中所建立的六类模板模型。
具体实施例方式
下面结合附图和具体实施方式
对本发明作进一步的说明。
如图1所示,本发明的虚拟人群运动的三维可视化方法,包括以下步骤一、预处理步骤预处理步骤的主要目的是生成实时处理时所需要的模板模型库、材质库、运动数据库和绘制库。因此包括模板模型建模、运动数据捕获、运动数据合成、模板模型和运动数据绘制预处理四个子步骤。
步骤10、模板模型建模,建立模板模型库。
步骤11、分析应用系统中出现的虚拟人群,将其中的个体按照一定标准进行分类。例如可以按照年龄和性别,将人群中的个体分为老年人男、老年人女、青年人男、青年人女、儿童男、儿童女六类。
步骤12、针对每一类型个体的外形特征,建立一个三维人体模型作为模板模型。例如,在步骤11)中将虚拟人群划分为老年人男、老年人女、青年人男、青年人女、儿童男、儿童女六类,在本步骤中,为老年人男建立一个三维人体模型,该模型作为老年人男的模板模型,对其他种类的虚拟人群也做类似的操作,最后得到老年人男、老年人女、青年人男、青年人女、儿童男、儿童女六类个体的模板模型。图2就是老年人男、老年人女、青年人男、青年人女、儿童男、儿童女六类个体的模板模型。
步骤13、针对每个模板模型的特征,选择一组派生部位,定义每一派生部位的可能材质,并加入到材质库中。一般情况下,可以选择人体所穿着的服装、发型、鞋帽作为派生部分。以老年人男模板模型为例,若指定上衣和裤子做为派生部位,材质库中存放的即为上衣和裤子的可能材质,这些可能材质由用户根据应用系统需要人为指定。
步骤20、捕获人体运动数据,或者手工生成人体运动数据,并将运动数据输入到运动数据库中。
步骤21、统计应用系统中的虚拟个体可能出现的运动状态。例如,在人员平地紧急疏散的情况下,个体可能出现的运动状态包括走、跑、停止观望、死亡倒地。
步骤22、利用运动捕获设备或使用运动生成和编辑软件,采集步骤21中所统计得到的每种运动状态的人体运动数据。对人体运动数据的捕获可采用现有的运动捕获方法,包括基于电磁的、基于光学的、基于声学的运动捕获方法,所采用的运动捕获设备可采用VICON。所述的运动生成和编辑软件包括专用软件3dsmax或Maya或SOFTIMAGE|XSI或Blender。
步骤30、运动数据合成。不同的模板模型,由于具有不同的身高、腿长等人体测量学信息,若采用相同的运动数据进行驱动,必将产生脚步滑动、肢体穿透等问题。因此,需要对捕获到的运动数据进行处理,为每个模板模型合成一套符合该模型体型的运动数据。此外,为了节省存储空间,每个运动数据需要处理成可循环播放的,即首帧和尾帧能够平滑过渡的周期性运动数据。合成运动数据,可以采用美工手调的方法,也可以采用运动融合、运动拼接、运动重定向等技术,只要生成的数据是逼真的、符合模板模型体型特征的、能够循环播放的就可以。
步骤40、模板模型和运动数据绘制预处理。为了提高模板模型渲染的速度,高效的绘制算法通常需要对模板模型和运动数据进行绘制预处理。例如,采用基于点采样的绘制算法,需要对模板模型经运动数据驱动后的模型进行点采样,生成多分辨率模型;采用基于图像的绘制算法,也需要根据这个驱动后模型生成不同视角的图像。对模板模型和合成的运动数据进行绘制预处理的具体实现步骤包括
步骤41、对每个模版模型,对每个此模板模型可执行的动作数据,对此动作数据的每一帧,计算对应此帧的三维模型;步骤42、对步骤41中得到的三维模型,进行绘制预处理。
其中,在步骤42中所需的绘制预处理方法包括基于图像的绘制预处理方法、基于点采样的绘制预处理方法、基于网格动画的预处理方法、基于层次细节技术的预处理方法。
二、输入数据步骤步骤50、输入描述人群运动的简单脚本数据,脚本中的信息主要包括群体中每个个体所属的类型、每个个体当前的位置、每个个体当前的运动状态。
下面是输入数据的一个例子片段…个体序号015;个体类型老年人男;…时间(秒)0.2位置(米)10,11,11;运动状态走;时间(秒)0.3位置(米)10.1,11,11;运动状态走;时间(秒)0.4位置(米)10.2,11,11;运动状态走;…三、实时处理步骤实时处理步骤包括模型派生、模型驱动、群体渲染,用于对虚拟人群运动的三维可视化实现。
步骤60、根据输入数据,从模板模型库中选择模板模型,并结合材质库实现模型的派生,生成虚拟个体。
步骤61、针对群体中的每个个体,根据输入数据中该个体的类型信息,从模板模型库中选择相应的模板模型;步骤62、判断当前个体是否首次出现,若是,执行下一步,否则,执行步骤64;步骤63、个体首次出现,尚未分配材质,从材质库中随机选择一套材质,并在内存中存储材质序号,然后执行步骤70;步骤64、个体已经分配材质,直接从内存中读取该模板模型的材质序号,并使用相应的材质,进行渲染。
步骤70、驱动模型得到个体当前时刻的最终姿态。
步骤71、针对群体中的每个个体,根据输入数据中该个体的类型信息和当前时刻该个体的运动状态信息,从运动数据库中选择相应的运动数据。以步骤50中输入的数据为例,对个体序号为015的老年人男,从运动数据库中选择老年人男的走的运动数据。
步骤72、根据输入数据中该个体当前时刻、上一时刻和下一时刻的位置信息,求取该个体当前的运动速度和运动方向。仍以步骤50中输入的数据为例,个体序号为015的老年人男,在其运动过程中,上一时刻为0.2秒,当前时刻为0.3秒,下一时刻为0.4秒,在0.2秒时的位置为(10,11,11),在0.3秒时的位置为(10.1,11,11),在0.4秒时的位置为(10.2,11,11)。据此可计算该个体当前的运动速度为1米/秒,当前的运动方向为(1,0,0)。
步骤73、根据从运动数据库中选出的各时刻运动数据的位移向量、个体各时刻仿真数据的位移向量、个体上一时刻所选取的运动数据帧索引,计算当前时刻个体的运动数据。运动数据包括个体当前的位置、身体各个部分的运动姿态。
具体计算方法如下假设{Fi;i=1,……,I}为第i帧运动数据的位移向量,其中,I为运动数据总帧数。{Sj}为在时间点tj上仿真数据位移向量,需要求得{Nj},即在时间点tj上所选取的运动数据帧索引。使用数学归纳法,使初始值N0=1,问题转换为在Nj已知的前提下,求Nj+1。其中,下标j表示上一时刻,下标j+1表示当前时刻。
使用试探求解的方法,将Nj+1由Nj依次递增试探,当FNj+1-FNj>Sj+1-Sj]]>时,试探停止,即得到Nj+1。其中,>符号为运动数据与仿真数据两个向量的比较,使用最大分量比较法,即当向量 中任一分量大于Sj+1-Sj中相应分量时,即整个向量大于。因为运动数据帧数有限,无法无限递增试探,因此当Nj+1>I时,Nj+1重新从1开始递增试探,同时,FNj+1=FNj+1+F1-F1.]]>步骤74、利用步骤73中得到的当前时刻运动数据和步骤72)中得到的运动方向驱动步骤60中生成的虚拟个体。
步骤75、遍历群体中的全部个体,生成动态虚拟群体。
步骤80、实现对虚拟人群的群体渲染。在本步骤中,群体渲染是成熟的现有技术,可采用中国专利号为200610089057.9,发明名称“一种虚拟人实时绘制方法”的发明专利申请,其中公开了绘制方法或其他高效的绘制方法,对动态虚拟群体进行实时绘制,包括基于图像的绘制方法、基于点采样的绘制方法、基于网格动画的绘制方法、基于层次细节技术的绘制方法等。
权利要求
1.一种虚拟人群运动的三维可视化方法,包含以下步骤步骤10)、分析系统中要出现的虚拟人群,将个体作分类,为每种分类按外形特征建立一个三维人体模型作为模板模型,得到模板模型库;并根据每个模板模型的特征,选择一组派生部位,定义每一派生部位所能用到的材质,加入到材质库中;步骤20)、捕获或者手工生成人体运动数据,并将运动数据输入到运动数据库中;步骤30)、合成运动数据;步骤40)、对模板模型和合成的运动数据进行绘制预处理;步骤50)、输入描述人群运动的简单脚本数据,脚本中的信息包括群体中每个个体所属的类型、每个个体当前的位置、每个个体当前的运动状态;步骤60)、根据步骤50)中输入的数据,从模板模型库中选择模板模型,并结合材质库实现模型的派生,生成虚拟个体;步骤70)、对步骤60)生成的虚拟个体,根据该个体在步骤50)中输入的运动状态信息,从所述的运动数据库中选择运动数据,并计算该运动数据随时间的变化,以驱动虚拟个体的运动;遍历群体中的所有虚拟个体,生成动态的虚拟人群;步骤80)、实现对虚拟人群的群体渲染。
2.根据权利要求1所述的虚拟人群运动的三维可视化方法,其特征在于,在步骤10)中,所述的将个体作分类是按照个体的年龄、性别对人群进行划分。
3.根据权利要求1所述的虚拟人群运动的三维可视化方法,其特征在于,在步骤10)中,所述的派生部位选择人体所穿着的服装、发型、鞋帽。
4.根据权利要求1所述的虚拟人群运动的三维可视化方法,其特征在于,所述的步骤20)包括步骤21)、统计系统中的虚拟个体可能出现的运动状态;步骤22)、利用运动捕获设备采集或使用运动生成和编辑软件手工生成步骤21)中所统计得到的每种运动状态的人体运动数据。
5.根据权利要求4所述的虚拟人群运动的三维可视化方法,其特征在于,在所述的步骤22)中,捕获运动数据采用基于电磁的或基于光学的或基于声学的运动捕获方法,所述的运动生成和编辑软件包括专用软件3dsmax或Maya或SOFTIMAGE|XSI或Blender。
6.根据权利要求1所述的虚拟人群运动的三维可视化方法,其特征在于,在所述的步骤30)中,所述的合成运动数据采用美工手调的方法或采用运动融合、运动拼接、运动重定向的方法。
7.根据权利要求1所述的虚拟人群运动的三维可视化方法,其特征在于,在步骤40)中,对模板模型和合成的运动数据进行绘制预处理包括41)、对每个模版模型,对每个此模板模型可执行的动作数据,对此动作数据的每一帧,计算对应此帧的三维模型;42)、对步骤41)中得到的三维模型,进行绘制预处理;其中,所需的绘制预处理方法包括基于图像的绘制预处理方法、基于点采样的绘制预处理方法、基于网格动画的预处理方法、基于层次细节技术的预处理方法。
8.根据权利要求1所述的虚拟人群运动的三维可视化方法,其特征在于,所述的步骤60)包括步骤61)、针对系统虚拟人群中的每个个体,根据在步骤50)所输入数据中的个体的类型信息,从模板模型库中选择相应的模板模型;步骤62)、判断当前个体是否首次出现,若是,执行下一步,否则,执行步骤64);步骤63)、个体首次出现,尚未分配材质,从所述的材质库中随机选择一套材质,并在内存中存储材质序号,然后执行步骤70);步骤64)、个体已经分配材质,直接从内存中读取该模板模型的材质序号,并使用相应的材质,进行渲染。
9.根据权利要求1所述的虚拟人群运动的三维可视化方法,其特征在于,所述的步骤70)包括步骤71)、针对群体中的每个个体,根据步骤50)的输入数据中该个体的类型信息和当前时刻该个体的运动状态信息,从运动数据库中选择相应的运动数据;步骤72)、根据输入数据中该个体当前时刻、上一时刻和下一时刻的位置信息,求取该个体当前的运动速度和运动方向;步骤73)、根据从运动数据库中选出的各时刻运动数据的位移向量、个体各时刻仿真数据的位移向量、个体上一时刻所选取的运动数据帧索引,计算当前时刻个体的运动数据,所述的运动数据包括个体当前的位置、身体各个部分的运动姿态;步骤74)、利用步骤73)中得到的当前时刻运动数据和步骤72)中得到的运动方向驱动步骤60)中生成的虚拟个体;步骤75)、遍历群体中的全部个体,生成动态虚拟群体。
10.根据权利要求1所述的虚拟人群运动的三维可视化方法,其特征在于,所述的步骤80)中所叙述的群体渲染采用的方法包括基于图像的绘制方法、基于点采样的绘制方法、基于网格动画的绘制方法、基于层次细节技术的绘制方法。
全文摘要
本发明公开了一种虚拟人群运动的三维可视化方法,包含以下步骤分析系统中要出现的虚拟人群,将个体作分类,建立模板模型库和材质库;捕获或者手工生成所需人体运动数据,并将运动数据输入到运动数据库中;合成运动数据;对模板模型和合成的运动数据进行绘制预处理;输入描述人群运动的简单脚本数据;生成虚拟个体;驱动虚拟个体的运动,生成动态的虚拟人群;实现对虚拟人群的群体渲染。本发明的虚拟人群运动三维可视化方法,具有高效、通用、低建模成本等优点,能够在普通的PC上实时、逼真的展示30,000人规模的虚拟人群运动。
文档编号G06T15/70GK1949274SQ20061011410
公开日2007年4月18日 申请日期2006年10月27日 优先权日2006年10月27日
发明者毛天露, 束搏, 徐文彬, 夏时洪, 王兆其 申请人:中国科学院计算技术研究所