基于动态Billboard技术的三维场景绘制简化方法

文档序号:6463518阅读:258来源:国知局
专利名称:基于动态Billboard技术的三维场景绘制简化方法
技术领域
本发明涉及大规模动态三维场景实时绘制技术、基于动态Billboard的变形 物体绘制简化技术。本发明是一种高效、实时的动态三维场景绘制简化方法, 属于计算机应用领域,特别是计算机图形学、虚拟现实技术领域。技术背景虚拟环境趋向大型化、复杂化,而实时性又是虚拟现实系统所追求的重要 目标之一。在现有的计算机软硬件条件下,模型的复杂度与绘制复杂度和实时 性三者之间存在着很大的矛盾,此消彼涨,很难兼顾。特别是大规模动态场景 的绘制,如涉及到人的大型广场文艺表演仿真,大型公共场所仿真,涉及到环 境的室外自然场景仿真、战场环境仿真等,场景大、涉及人物等角色模型数量 多,往往会有几千个角色同时运动,传统的变形方法变形准确但计算量大,无 法实现实时性计算和场景绘制。三维场景中模型的动态变形需要大量的计算资源,大规模三维模型的变形 或角色动作, 一般采用离散LOD (Level Of Details)方法减少绘制三角形以加 快绘制速度,但存在的问题是,当LOD简化层次过大时,模型变的非常粗糙, 变形动作连贯性差,严重影响真实感。即便如此,当场景中有上千规模的角色 同时进行动作变形时,仍然无法达到实时计算和动态场景绘制。Billboard (广告牌)是一种常用的场景绘制模型简化技术,使用朝向观察者 的平面板代替模型绘制,能够很好的实现大量复杂模型的实时性绘制问题。 Billboard技术广泛应用于粒子系统和复杂模型简化。该技术将模型投影成一幅 图像,并在图像中设置非模型区域的透明属性,实际绘制时,绘制贴像纹 理的四边形。为展现三维模型不同视点下的立体多样特性提出的三板Billboard 技术,可以实现从不同角度观察模型得到不同的结果,更加接近三维视觉效果。 目前,Billboard的贴图都采用静态纹理,大大限制了其应用的范围。模型的变形是计算机图形学中的传统课题,模型的变形按应用分类,大体 分为二维图像变形、三维几何体变形和流体变形。针对模型的变形,研究者们 展开了研究,如基于骨骼的变形、基于FFD的变形、基于弹簧模型变形、基于无网格法的变形、基于有限元的变形和基于物理的变形。流体变形基本分为两 种方法,欧拉法和拉格朗日法。变形的过程通常要耗费大量的计算资源,因此 对于场景中包含大量变形物体或角色时,无法实现绘制的实时性。本发明提出的基于动态Billboard技术的三维场景绘制简化方法,针对在包 含大量重复或相近动态变化物体(特别是人物角色或者条状组成的物体)的三 维虚拟场景中,解决绘制过程中的真实感和绘制实时性的矛盾。本发明的原理 是采用基于曲线式骨骼的图像变形方法,对三维场景中物体的二维投影或二 维图像进行实时变形,将图像变形结果实时传递到三维场景中的Billboard板 上,简化场景中动态物体的绘制复杂度,从而为大规模场景的实时绘制和漫游 提供技术保证。本发明的目的是通过下述步骤实现的。(1) 二维图像的输入对三维场景中动态变化物体进行二维投影,或直接采 用其二维图像。(2) 骨骼模型的建立标定输入图像需变形区域的关节点,根据关节点连接的两骨骼长度、宽度和夹角信息,建立骨骼两侧双曲线方程。通过调整该曲线 的参数,使曲线连接处二次连续可导,避免以往骨骼变形中关节连接处的不平 滑失真。对于每个关节点,设定坐标原点为当前关节点,坐标x轴为关节点两 侧骨骼的角平分线。两侧双曲线可以用公式1表示,其中r为硬度参数,/t为骨骼斜率,汉为两双曲线间的x轴方向距离。为使骨骼模型在变形时分散变形扭曲减小整体变形失真,将模拟骨骼的三角带 均匀分布在模型中心线上,不论骨骼模型如何变化,都能保证三角带内的三角 形同时变化。中心双曲线长度可计算为发明内容然后根据内侧双曲线焦点计算分割线斜率根据两侧双曲线方程和分割线方程求出两侧双曲线上的分隔点,使用这些顶点 构建三角带,该三角带即为曲线式骨骼模型的中心三角带。三角带的顶点均匀 的分布在两双曲线上,这些顶点可以使用公式4求得,<formula>formula see original document page 7</formula> 其中w是三角带中三角形的数量,/为三角形的序号,^是双曲线的最大y值,a是两双曲线在z方向上的间隔。最后根据骨骼长度计算长度调节矩形, 完成曲线式骨骼模型的建立。(3) 变形动作的设定与计算调整关节点的位置、方向和骨骼间的夹角,设 定该物体的所有关键变形动作。程序运行时,根据当前时刻前后两个关键帧的 状态,插值计算当前时刻各关节点的数据。(4) 图像变形计算为减小变形失真,通过调整两侧双曲线的X方向距离参 数,保持每一个关节点周围的局部图像面积恒定,从而有效减小变形引起的形 状扭曲。每个关节点的变形区域面积可以用公式5表示,其中"是骨骼的倾斜角,<formula>formula see original document page 7</formula> 为使变形区域的面积保持恒定,而与骨骼间的夹角"变化无关,距离参数^采用公式6求得,<formula>formula see original document page 7</formula> (6)从原始图像的骨骼模型中提取标准纹理图,并组合成规则的纹理图像,使用曲 线骨骼模型作为源坐标,使用规则网格模型作为目标坐标,进行渲染即可得到 标准纹理图。最后,根据网格的变形实现图像变形。(5) 绑定生成Billboard板采用绘制到纹理(Render to Texture)技术,在显 存中申请离屏绘制对象FBO(Frame Buffer Object)和一定尺寸的纹理空间,该纹 理大小与绘制视窗一致,在申请方式上与普通的纹理相同,并将该纹理与FBO 对象绑定。在变形绘制之前,将绘制目标设定为FBO对象,则运行结果绘制到 指定纹理空间中,此时图像的变形结果实时绘制到显存纹理中。绘制完毕之后, 将绘制目标重置为帧缓冲区,并传递该纹理的纹理ID给绘制过程,即实现了该纹理贴图到Billboard板上,使得当前Billboard的纹理内容是当前运行时刻的图 像变形的结果。在每一帧绘制中,首先根据角色的运动路线计算出物体在场景中的实际位 置,根据观察者所在的位置和角色的高度宽度值,计算Billboard顶点的实际位 置坐标。使用一个Billboard板代替三维场景中一个动态物体。最终生成所需要 的大规模动态场景的实时绘制。有益效果本发明的优点是实时计算二维图像变形纹理,通过多Billboard复用纹理, 实现多角色同步变形,在保证绘制真实感的前提下,实现大规模角色变形的实 时绘制。


图1算法流程图;图2变形网格创建原理图;图3单个角色完整变形网格示意图;图4基于曲线式骨骼的图像变形结果图;图5角色运动场景绘制效果图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。图1是本发明的算法的流程图,本发明方法按照图1流程,运行包括如下 具体步骤(l)二维图像的输入对三维场景中动态变化人物角色进行二维投影,或直接采用其二维图像。 C2)骨骼模型的建立1) 对图像变形区域标定变形关节点。2) 参照图2,为每一个关节点建立变形网格。根据关节点连接的两骨骼长度、 宽度和夹角信息,建立骨骼两侧双曲线方程。通过调整该曲线的参数,使曲线 连接处二次连续可导,避免以往骨骼变形中关节连接处的不平滑失真。对于每 个关节点,设定坐标原点为当前关节点,坐标X轴为关节点两侧骨骼的角平分 线。两侧双曲线可以用公式l表示,其中r为硬度参数,/fc为骨骼斜率,/X为两双曲线间的X轴方向距离。y2(1)为使骨骼模型在变形时分散变形扭曲减小整体变形失真,将模拟骨骼的三角带 均匀分布在模型中心线上,不论骨骼模型如何变化,都能保证三角带内的三角 形同时变化。中心双曲线长度可计算为然后根据内侧双曲线焦点计算分割线斜率(2)A = min1(3)根据两侧双曲线方程和分割线方程求出两侧双曲线上的分隔点,使用这些顶点 构建三角带,该三角带即为曲线式骨骼模型的中心三角带。三角带的顶点均匀 的分布在两双曲线上,这些顶点可以计算为JC, 4, ,、+1±生2(4)其中w是三角带中三角形的数量,/为三角形的序号,x是双曲线的最大r值,/x是两双曲线在x方向上的间隔。最后根据骨骼长度计算长度调节矩形。3)参照图3,对该图像上每一个变形区域建立变形网格,完成整个图像的曲 线式骨骼模型的建立。(3) 变形动作的设定与计算调整关节点的位置、方向和骨骼间的夹角,设定该物体的所有关键变形动 作。程序运行时,根据当前时刻前后两个关键帧的状态,插值计算当前时刻各 关节点的数据。(4) 图像变形计算设置绘制对象为FBO,启用图像变形顶点程序,根据当前驱动动作状态中 的关节点数据,计算曲线式骨骼变形模型,实现图像变形,参照图4。在图像变形中,通过调整两侧双曲线的X方向距离参数,保持每一个变形 区域的面积恒定,从而有效减小变形引起的形状扭曲。每个关节点的变形区域面积可以用公式5表示,其中「筹JJI鄉,錄ft< he妙f = /2)*sin(a)* 2 (5)为使变形区域的面积保持恒定、而与骨骼间的夹角a变化无关,距离参数/,可 计算为J = W<^/70 / sin(a) (6)假设每个关节点规则网格的宽度为vt'/淑尸。int = /ewgA Re "1 + /ewgACMrve + /e"gt/ Re "2 (7) /e"g^CMrve是中心段三角带的总长度,/e"g^Re"l, /ew^/Re"2分别是两端长度调 节矩形的长度。将这个骨骼模型的网格平移并排列成规则形状。整个规则纹理 图像称作标准纹理图像,标准纹理图像的网格总高度为各个关节点高度之和, 即^/gMbotte妙^int尸oint"。标准纹理图像网格中,骨骼模型中心三角带内 侧顶点的坐^头a: = /e赠/z Re c/1 + /e赠/; Re "2 + /:(8)骨骼模型中心三角带外侧顶点的坐标为;c = /ewg/// Re cd + /e刚/z Re "2 + /(9)其中"^w。"映是三角带中三角形数量,"是当前关节点的序号。使用曲线骨骼模 型作为源坐标,使用规则网格模型作为目标坐标,根据坐标对应绘制即可得到 标准纹理图。使用顶点绘制器在一次绘制循环中实现GPU加速计算变形网格和变形结果 的绘制。每一帧绘制由上传数据、顶点绘制计算和实际帧缓冲区绘制组成,跳 过设置绘制目标、重置绘制目标和数据回传三个过程。在变形网格计算中,每个关节点的变形网格是互相独立的。GPU顶点程序的 输入是当前关节点的位置、骨骼夹角等信息,最终输出是对应当前状态的变形 网格的顶点坐标。顶点程序首先计算控制双曲线的方程,然后计算变形网格各 顶点的坐标,并完成从局部坐标到全局坐标的转换,按GL TRIANGLE STRIP方式绘制所有顶点即可得到对应的变形网格。变形网格计算的GPU顶点程序可 以描述为-1) 输入当前顶点序号及其所在关节点的相关信息;2) 输出当前顶点在全局坐标系中的坐标;3) 计算控制双曲线的方程;4) 计算定义变形区域的边界点坐标;5) 区分当前顶点在两条控制曲线的哪一条上;6) 计算当前顶点在局部坐标系中的坐标;7) 根据关节点位置和方向,把局部坐标转换成全局坐标。 (5)绑定生成Billboard板重置绘制对象为帧缓冲区,启用场景绘制Billboard顶点计算顶点程序。 场景绘制GPU顶点程序的输入数据是观察者的位置、各个活动角色的高度 宽度及其在三维场景中的位置,最终输出是场景中各活动角色Billboard的顶点 坐标。GPU顶点程序首先结合观察者位置和各活动角色位置计算从观察者到活 动角色的视向量;然后结合高度和宽度信息计算各顶点局部坐标,并完成从局 部坐标到全局坐标的转换。在三维场景中绘制这些Billboard,并贴图角色图像变 形的结果纹理,得到角色运动可视化场景。场景绘制加速的GPU顶点程序可以 描述为1) 输入活动角色相关信息、观察者位置信息;2) 输出Billboard板各顶点的在全局坐标系中的坐标;3) 计算从观察者到活动角色的视向量;4) 计算当前角色Billboard板的旋转角度;5) 计算Billboard板顶点在局部坐标系中的坐标;6) 根据活动角色位置。 (6)场景绘制通过上述步骤,将场景中的每一个动态角色都用动态Billboard板替代,最 终实现了三维场景中大规模人物角色的实时动态变化,如图5所示。
权利要求
1. 基于动态Billboard技术的三维场景绘制简化方法,其特征在于包括如下步骤(1)二维图像的输入对三维场景中动态变化的物体进行二维投影,或直接采用其二维图像,作为输入数据;(2)骨骼模型的建立标定输入图像需变形区域的关节点,连接关节点形成骨骼,生成骨骼三角带变形网格;(3)变形动作的设定与计算调整关节点的位置、方向和骨骼间的夹角,设定该物体的所有关键变形动作;程序运行时,根据当前时刻前后两个关键帧状态,插值计算当前时刻各关节点的数据;(4)图像变形计算根据当前运行时刻的关节点数据,改变骨骼模型的参数,并更新三角带变形网格,从而实现图像的变形;(5)绑定生成动态Billboard板将图像的变形结果实时绘制到显存纹理中,然后将该纹理贴图到Billboard板上,使得当前Billboard的纹理内容是当前运行时刻的图像变形的结果,实现动态Billboard;(6)场景绘制使用一个动态Billboard板代替三维场景中一个动态物体,实现最终动态场景绘制。
2. 根据权利要求1所述的基于动态Billboard技术的三维场景绘 制简化方法,其特征在于建立基于双曲线方程的骨骼模型,并使双 曲线连接处二次连续可导,避免骨骼变形中关节连接处的不平滑失 真;图像的关节点标定后,根据关节点连接的两骨骼长度、宽度和夹 角信息,计算出骨骼两侧双曲线方程;对于每个关节点,设定坐标原 点为当前关节点,坐标X轴为关节点两侧骨骼的角平分线;两侧双曲 线可以用公式l表示,其中r为硬度参数,A为骨骼斜率,W为两双曲线间的X轴方向距离;中心双曲线长度可计算为<formula>formula see original document page 2</formula><formula>formula see original document page 3</formula>然后根据内'.曲线焦点计算分割线斜率<formula>formula see original document page 3</formula>(3)<formula>formula see original document page 3</formula>根据两侧双曲线方程和分割线方程求出两侧双曲线上的分隔点,使用这些顶点构建三角带,该三角带即为曲线式骨骼模型的中心三角带; 三角带的顶点均匀的分布在两双曲线上,这些顶点可以计算为<formula>formula see original document page 3</formula>其中W是三角带中三角形的数量,/为三角形的序号,x是双曲 线的最大y值,"是两双曲线在I方向上的间隔;最后根据骨骼长度 计算长度调节矩形,完成曲线式骨骼模型的建立。
3. 根据权利要求1所述的基于动态Billboard技术的三维场景绘制简化方法,其特征在于使用局部面积保持法来更新图像的三角带变形网格,减少变形中的形状失真;在图像变形中,通过调整两侧双曲线的Z方向距离参数,保持每一个变形区域的面积恒定,从而有效减小变形引起的形状扭曲;每个关节点的变形区域面积可以用公式5表示,其中"是骨骼的倾斜角,<formula>formula see original document page 3</formula> (5) iW淑=/1为使变形区域的面积保持恒定,而与骨骼间的夹角"变化无关,距离 参数"计算为<formula>formula see original document page 3</formula>(6)从原始图像的骨骼模型中提取标准纹理图,并组合成规则的纹理图像, 根据网格变换实现图像变形。
4. 根据权利要求1所述的基于动态Billboard技术的三维场景绘制简化方法,其特征在于采用绘制到纹理(RendertoTexture)技术, 使得Billboard的纹理内容实时动态更新;在显存中申请屏绘制对象 FB0(Frame Buffer Object)和一定尺寸的纹理空间,该纹理大小与绘制 视窗一致,在申请方式上与普通的纹理相同,并将该纹理与FBO对 象绑定;在变形绘制之前,设定绘制目标为FBO对象,绘制运行结 果到指定纹理空间中;绘制完毕之后,绘制目标重置为帧缓冲区,将 该纹理的纹理ID传递给绘制过程,直接用于三维场景的绘制。
全文摘要
本发明是基于动态Billboard技术的三维场景绘制简化方法,涉及一种高效、实时的动态三维场景绘制简化及大规模动态三维场景实时绘制技术,属于计算机应用领域,特别是计算机图形学、虚拟现实技术领域。该方法用二维图像的实时变形结果来替代三维场景中虚拟物体的动态表示。将真实的模型投影成二维图像,然后针对投影图像标定变形区域的简单骨骼框架;通过控制曲线式骨骼模型,实现二维图像角色或物体的动作变形;采用绘制到纹理技术,将变形结果实时绑定到Billboard板上,从而简化场景绘制复杂度,实现大规模动态场景的实时绘制。实验表明该方法在大规模重复或近似物体的变形场景绘制中,可以有效解决大规模动态场景真实感和实时性的矛盾。
文档编号G06T17/00GK101276482SQ20081010635
公开日2008年10月1日 申请日期2008年5月12日 优先权日2008年5月12日
发明者艳 张, 李凤霞, 李立杰, 陈宇峰, 陈红倩, 黄天羽 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1