专利名称:基于视频纹理的虚拟跑步运动员的绘制方法
技术领域:
本发明涉及游戏开发领域,特别地,涉及一种基于视频纹理的虚拟跑步运 动员的绘制方法。
背景技术:
在很多竞速游戏中,虚拟跑步运动员可以在场景中和真实的用户化身同台 竞技,增强了系统的真实感和娱乐性。虚拟跑步运动员的仿真,大规模人群仿
真的一类。
大规模群体运动仿真,就是研究人群在各种环境、情节下的运动特征与规 律,建立大规模群体运动的仿真模型,并在计算机生成空间(虚拟环境)中以 三维的方式逼真地展示大规模群体的运动过程。大规模群体运动仿真技术,提 供了人群运动的分析和演示工具,应用的领域相当广泛。利用群体仿真,可以 很成功地建立紧急情况下的人群流动模型,如从一个发生火灾的建筑物中逃生, 中科院计算所在国家自然科学基金项目"面向大规模人群应急疏散模拟的虚拟
人行为建模方法研究"中,也在进行类似的研究;群体模型可以用来检验建筑 设计的是否适宜居住,提高了建筑模型的真实度;群体模型还可以帮人们分析 火车站人流状况、道路上车流人流情况;近年来,群体仿真技术在电影娱乐中 的应用也越来越广泛,创造了很多具有强烈视觉沖击力的画面,如《纳尼亚传 奇》中的战斗场面,著名的足球游戏FIFA在场景中,逼真地模拟出了球员和大 量观众,提高了参与者的热情和场景的逼真性。
实现大规模人群运动仿真,需要解决两项关键的技术问题。其一是,研究 并建立大规模人群运动的仿真模型,实现对人群运动的模拟;其二是,研究大 规模人群运动的可视化技术,即如何将大规模人群运动以三维的方式逼真地展 现到虚拟场景中。同大规模人群运动仿真类似,虚拟跑步运动员在实现时也会 涉及到这两项技术。
由于人群运动的机制相当复杂,并伴有一定的不确定性,目前还没有完整、通用的人群运动仿真模型。现有的模型往往是针对某种特定的应用场合。 虚拟跑步运动员具有自己的特点,即它们和用户化身一样,会沿着某一预定的 路线跑动,另外虚拟跑步运动员两两之间还需要进行碰撞检测。本发明针对虚 拟跑步运动员自身的特点,对其进行了路径规划和碰撞检测。
人群运动可视化技术方面,主要基于两类类基本绘制方法,即基于蒙皮骨
骼的绘制方法和基于图像的绘制方法(Image Based Rendering, IBR)。蒙皮骨骼 是最基本的一种角色建模方式。使用该方式创建的人物动画通常包含三部分, 即骨骼、蒙皮网格和动画文件。其中,骨骼是按照一定层次结构组织在一起的 一系列骨骼节点,通常包含若干套动画。蒙皮网格是附着在骨骼节点上的一层 网格。人物角色要做出各种动作,需要靠骨骼的各种旋转、移动等变换来驱动 网格顶点坐标的变化。网格上某一顶点的运动,不仅受其所附着的骨骼节点的 影响,还受到临近骨骼节点的加权影响。基于图像的方法则将三维模型转换成 "图像+视角"的表达方式,通过重用、合成或重构得到最终图像。
基于蒙皮网格的建模方法,能够产生逼真的视觉效果,其缺点是绘制开销 过大。基于图像的建模方法,可以避免图形流水线带来的开销,虽然可以通过 组合若干连续图片实现动画效果,但这种动画很不连续,而且会占用大量存储 空间。
发明内容
本发明的目的是针对现有技术的不足,提供一种基于视频纹理的虚拟跑步 运动员的绘制方法。
本发明的目的是通过以下技术方案来实现的 一种基于视频纹理的虚拟跑 步运动员的绘制方法,该方法包括以下步骤
(1) 制作包含动画效果的虚拟跑步运动员视频和视频背景图片;
(2) 在游戏的虚拟场景中,创建一个广告牌,将视频作为纹理显示在广告牌上。
(3) 剔除视频背景将视频纹理和背景图片纹理同时传入片段着色器,然后对
视频纹理和背景图片进行片段采样,采样颜色分别为0:,^和(:4<—;对比C^和
C^一皿,,如果两个颜色差值小于阀值",则将该片段置为透明,否则不进行处 理;最后开启alpha测试,实现背景剔除效果;
(4) 实现常规蒙皮骨骼形式的人物动画和视频纹理的切换;(5)对虚拟跑步运动员进行路径规划在虚拟场景中选取路径的若干连续关键 点,组成比赛路径,存储在一个路径文件内,然后读取路径文件,在每两个控 制点之间,釆用线性插值的方法确定虚拟跑步运动员路径,最后检测虚拟跑步 运动员跑步时的碰撞情况并做相应的碰撞处理。
本发明的有益效果是,本发明采用视频纹理来绘制游戏场景中的虚拟跑步 运动员,既能产生流畅的动画效果,又能避免图形流水线带来的开销。视频纹
理制作方便,可以直接从摄像机拍摄的视频取材,减少了3D建模带来的人力物
力开销。同时,根据虚拟跑步运动员自身特点的路径规划和碰撞检测,实现了 对虚拟跑步运动员的行为建模。本发明适用于在竞速游戏,虚拟跑步运动员的 添加使得竞速游戏更生动,提高了游戏的可玩性和吸引力。
图1是本发明的基于视频纹理的虚拟跑步运动员的绘制流程图2是本发明的实现视频背景剔除的流程图3是本发明的视频背景剔除效果图4足本发明的视频纹理和蒙皮骨骼动态切换效果示意图5是本发明的碰撞检测效果示意图。
具体实施例方式
本发明基于视频纹理的虚拟跑步运动员的绘制方法的原理是利用摄像机 拍摄和3D建模工具创建包含虚拟跑步运动员的视频,然后作为纹理显示到场景 中的广告牌上,采用片段着色器剔除视频背景,使虚拟跑步运动员与游戏场景 融为一体。为保证近处观察场景时得到逼真的效果,本发明根据摄像机与虚拟 跑步运动员间的距离来实现蒙皮网格和视频纹理之间的动态切换,这样游戏就 在真实感和实时性有一个较好的平衡。针对虚拟跑步运动员自身的特点,对其 进行了路径规划和碰撞检测,驱动虚拟跑步运动员在游戏场景中运动。
本方法的步骤如图l所示分五个步骤实现; 一、制作包含动画效果的虚拟跑步运动员视频和视频背景图片
该步骤由以下三步实现(l)选择一个具有静态背景和稳定光照的环境,(2) 用摄像机拍摄一幅背景图片,(3)保持摄像机的方位不发生变化,拍摄具有动画效果的人物视频,作为游戏中的虚拟跑步运动员。
二、 在游戏的虚拟场景中,创建一个广告牌,将视频作为纹理显示在广告牌上: 该步骤由以下三步实现(1)将视频文件名作为参数传入给现有游戏引擎
提供的视频纹理接口, (2)根据视频纹理中的虚拟跑步运动员的位置和大小, 提取虚拟跑步运动员右上角和左下角的纹理坐标,(3)广告牌根据得到的纹理 坐标,将视频纹理在自身显示出来。
三、 剔除视频背景 将视频纹理和背景图片纹理同时传入片段着色器,然后对视频纹理和背景
图片进行片段采样,进行片段采样,设采样颜色分别为07^和0:&—,如果对 比C^,和C^^,n^,如果两个颜色差值小于阀值",则将该片段置为透明,否则 不进行处理,最后开启alpha测试,实现背景剔除效果。
对视频纹理和背景图片进行片段采样是设当前待处理片段的坐标为Oc,力,
视频纹理为7;^,背景图片纹理为7L^,
四、 实现常规蒙皮骨骼形式的人物动画和视频纹理的切换
该步骤由以下四步实现(1)使用蒙皮骨骼为虚拟跑步运动员建立精细模 型,(2)使用视频纹理为虚拟跑步运动员建立非精细模型,(3)计算当前虚拟 人物里摄像机的距离,设该距离为rf, (4)判断rf与阀值^的关系,如果rf〈", 显示惊喜模型,否则切换为非精细模型。
五、 对虚拟跑步运动员进行路径规划:
在虚拟场景中选取路径的若干连续关键点,组成比赛路径,存储在一个路 径文件内,然后读取路径文件,在每两个控制点之间,釆用线性插值的方法确 定虚拟跑步运动员路径,最后检测虚拟跑步运动员跑步时的碰撞情况并做相应 的碰撞处理。
釆用线性插值的方法确定虚拟跑步运动员路径是设虚拟跑步运动员个体 当前位于[^,5]两个控制点之间,位置为&,所求的是经过AT时间后个体的新位 置.、,+,,其中力=(^,少。,0, 5 = (W"), S,-(JC,,兀A),定义从当前位置到目标 位置的位移为S,,行走方向W,速率v,计算方法如下
S银=5-S,-=(j:6,:j;4,a)-(jc,,_v,,z,),<formula>formula see original document page 8</formula>检测虚拟跑步运动员跑步时的碰撞情况,由以下三步实现(1)为每一个 待测试的虚拟跑步运动员添加碰撞体,其中碰撞体是一个跟虚拟跑步运动员大 小相似的一个几何体;(2)根据每一个碰撞体的轴对齐包围盒(AA朋),将所 有碰撞体在x,y,z轴上分别排序,提取可能发生碰撞的碰撞体;(3)将前一个 阶段提取出的碰撞检测体进行精细计算,以确定两个碰撞体之间是否真正发生 碰撞,如果发生碰撞,计算出碰撞时的接触点、接触向量和接触深度。
相应的碰撞处理是设碰撞发生时两物体位置分别为A和A,碰撞事件中
接触向量为w,接触深度为d,碰撞处理就是计算两物体的新位置iV和巧,结
果如下
P1' = P1 + N*d,P2' = P2 - N*d.
发生碰撞后,系统会将两个物体沿接触向量分开,从而实现碰撞检测的效果。
下面根据附图和实施例详细说明本发明,本发明的目的和效果将变得更加明显。
实施例
1) 制作包含动画效果的虚拟跑步运动员视频和视频背景图片。其步骤为
(1) 选择一个具有静态背景和稳定光照的环境;
(2) 用摄像机拍摄一幅背景图片;
(3) 保持摄像机的方位不发生变化,拍摄具有动画效果的人物视频,作为 游戏中的虚拟跑步运动员;
除r使用摄像机拍摄视频外,创建虚拟化身的第二种方式为首先在3D建 模工具中建立动画模型,并选择一个纯色背景作为视频背景,然后渲染带动画效 果的视频。
2) 在游戏的虚拟场景中,创建一个广告牌,将视频作为纹理显示在广告牌 上。其步骤为
(1)将视频文件名作为参数传入给现有游戏引擎提供的视频纹理接口 ;(2) 根据视频纹理中的虚拟跑步运动员的位置和大小,提取虚拟跑步运动 员右上角和左下角的纹理坐标;
(3) 广告牌根据得到的纹理坐标,将视频纹理在自身显示出来;
3) 剔除视频背景。直接将视频在广告牌上播放时,由于背景不透明,使程 序的真实感大大降低,视频背景的剔除,可以让虚拟跑步运动员和游戏场景很 好的融合在一起。其步骤为
(1) 将视频纹理和背景图片纹理同时传入片段着色器;
(2) 根据当前待处理片段的坐标,对视频纹理和背景图片进行片段采样, 进行片段采样,设采样颜色分别为C^^和Q^;
(3) 对比C^。和Q^,如果两个颜色差值小于阀值a,则将该片段置为 透明,否则不进行处理;
(4) 开启alpha测试,实现背景剔除效果; 背景剔除的流程图如图2所示,背景剔除效果如图3所示。
4) 实现常规蒙皮骨骼形式的人物动画和视频纹理的动态切换。在视觉效果 上,视频纹理和蒙皮骨骼还有一定差距,为保证游戏带来的真实感,当虚拟跑 步运动员离视点比较近时,采用蒙皮网格来绘制,当离视点较远时则切换为视 频纹理,如图4所示。
5) 对虚拟跑步运动员进行路径规划。虚拟跑步运动员中每一个个体的路径 由一系列关键点组成。个体的行动原则是根据它们的当前位置和目标位置来决 定自己行走的方向,根据当前时间来确定个体将要发生的位移大小。设虚拟跑 步运动员个体当前位于"fi]两个控制点之间,位置为S,,所求的是经过A/时间 后个体的新位置a,+,,其中j = 0c。,y。,O, S = (Jc6,h,zA), S,=(jc,,j;,,Z,),定义从当 前位置到目标位置的位移为S^,行走方向JV,速率v,计算方法如下
S顿—S,=(x4,j;^6)-(x,o;,,jr,) 公式3
w=l^li 公式4
十vxJVxAf 公式5
为使虛拟跑步运动员的运动更为逼真,本发明为添加了碰撞检测机制,为 每-'个待检测物体添加碰撞体,然后对碰撞提的轴对齐包围盒,在x、 y、 z方 向上分别排序,如果两个碰撞体在x、 y、 z上同时存在重叠的现象,则将两碰
9撞体提取出来,供给下一步进行精细测试,以确定两者是否真正发生了碰撞, 如果是的话,生成碰撞事件,并根据碰撞事件,将发生碰撞的虚拟跑步运动员
拉开。碰撞检测最终效果如图5所示。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的 精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发 明的保护范围。
权利要求
1.一种基于视频纹理的虚拟跑步运动员的绘制方法,其特征在于,该方法包括以下步骤(1)制作包含动画效果的虚拟跑步运动员视频和视频背景图片。(2)在游戏的虚拟场景中,创建一个广告牌,将视频作为纹理显示在广告牌上。(3)剔除视频背景将视频纹理和背景图片纹理同时传入片段着色器,然后对视频纹理和背景图片进行片段采样,采样颜色分别为wideo和Cbackground;对比Cvideo和Cbackground,如果两个颜色差值小于阀值α,则将该片段置为透明,否则不进行处理;最后开启alpha测试,实现背景剔除效果。(4)实现常规蒙皮骨骼形式的人物动画和视频纹理的切换。(5)对虚拟跑步运动员进行路径规划在虚拟场景中选取路径的若干连续关键点,组成比赛路径,存储在一个路径文件内,然后读取路径文件,在每两个控制点之间,采用线性插值的方法确定虚拟跑步运动员路径,最后检测虚拟跑步运动员跑步时的碰撞情况并做相应的碰撞处理。
2. 根据权利要求1所述的一种基于视频纹理的虚拟跑步运动员的绘制方法, 其特征在于,所述步骤(1)中,所述制作包含动画效果的虚拟跑步运动员视频 和视频背景图片,包括以下步骤(a)选择一个具有静态背景和稳定光照的环 境;(b)用摄像机拍摄一幅背景图片;(C)保持摄像机的方位不发生变化,拍 摄具有动画效果的人物视频,作为游戏中的虚拟跑步运动员。
3. 根据权利要求1所述的一种基于视频纹理的虚拟跑步运动员的绘制方法, 其特征在于,所述步骤(2)中,所述将视频作为纹理显示在广告牌上,包括以 下步骤(a)将视频文件名作为参数传入给现有游戏引擎提供的视频纹理接口;(b)根据视频纹理中的虚拟跑步运动员的位置和大小,提取虚拟跑步运动员右上角和左下角的纹理坐标;(C)广告牌根据得到的纹理坐标,将视频纹理在自身显示出来。
4. 根据权利要求1所述的一 种基于视频纹理的虚拟跑步运动员的绘制方法, 其特征在于,所述步骤(3)中,所述对视频纹理和背景图片进行片段采样具体 为设当前待处理片段的坐标为oc,力,视频纹理为r^,背景图片纹理为7^^,
5. 根据权利要求1所述的一种基于视频纹理的虚拟跑步运动员的绘制方法, 其特征在于,所述步骤(4)中,所述实现常规蒙皮骨骼形式的人物动画和视频 纹理的切换,包括以下步骤(a)使用蒙皮骨骼为虚拟跑步运动员建立精细模 型;(b)使用视频纹理为虚拟跑步运动员建立非精细模型;(c)计算当前虚拟 人物里摄像机的距离,设该距离为^; (d)判断rf与阀值a的关系,如果rf", 显示惊喜模型,否则切换为非精细模型。
6. 根据权利要求1所述的一种基于视频纹理的虚拟跑步运动员的绘制方法, 其特征在于,所述步骤(5)中,所述采用线性插值的方法确定虚拟跑步运动员 路径具体为设虚拟跑步运动员个体当前位于[乂,5]两个控制点之间,位置为S,,所求的是经过&时间后个体的新位置&,其中j = 0c。,:v。,o, 5 = 0^,力,^),S,-0c,,:v,,z,),定义从当前位置到目标位置的位移为5V,行走方向W,速率v, 计算方法如下S晰=5 —S,-(JC4,h,^)一(x,,;v,-,z,), W-]f^]f' =S,+vxWxAf。
7. 根据权利要求1所述的一 种基于视频纹理的虚拟跑步运动员的绘制方法, 其特征在于,所述步骤(5)中,所述的检测虚拟跑步运动员跑步时的碰撞情况, 包括以下步骤(a)为每一个待测试的虚拟跑步运动员添加碰撞体,其中碰撞 体是一个跟虚拟跑步运动员大小相似的一个几何体;(b〉根据每一个碰撞体的 轴对齐包围盒(AABB),将所有碰撞体在x, y, z轴上分别排序,提取可能发生 碰撞的碰撞体;(c)将前一个阶段提取出的碰撞检测体进行精细计算,以确定 两个碰撞体之间是否真正发生碰撞,如果发生碰撞,计算出碰撞时的接触点、 接触向量和接触深度。
8. 根据权利要求1所述的一种基于视频纹理的虚拟跑步运动员的绘制方 法,其特征在于,所述步骤(5)中,所述的相应的碰撞处理具体为设碰撞发 生时两物体位置分别为f和A,碰撞事件中接触向量为W,接触深度为rf,碰撞 处理就是计算两物体的新位置"和《,结果如下发生碰撞后,系统会将两个物体沿接触向量分开,从而实现碰撞检测的效果。
全文摘要
本发明公开了一种基于视频纹理的虚拟跑步运动员的绘制方法。该方法主要用于游戏当中。首先制作包含动画效果的虚拟跑步运动员视频和视频背景图片;然后将视频作为纹理,显示在游戏场景中的广告牌上;将视频纹理和背景图片传入像素着色器,剔除视频背景;根据离视点的距离,实现常规蒙皮骨骼形式的人物动画和视频纹理的切换;最后存储一系列关键点,作为虚拟跑步运动员的运动路径。本发明采用基于视频的人物建模,来代替常用的蒙皮骨骼,大大降低了游戏渲染开销;视频动画可以从现实取材,减轻了3D人物建模的工作量。
文档编号G06T15/70GK101320482SQ20081006305
公开日2008年12月10日 申请日期2008年7月8日 优先权日2008年7月8日
发明者培 吕, 李永青, 潘志庚, 郭康德 申请人:浙江大学