一种大规模虚拟人群实时绘制方法

文档序号:6357905阅读:180来源:国知局
专利名称:一种大规模虚拟人群实时绘制方法
技术领域
本发明涉及一种大规模虚拟人群实时绘制方法,特别涉及一种结合了基于点采样的模型简化生成技术、基于GPU视锥体裁剪与LOD策略的实时绘制加速技术与基于GPU蒙皮骨骼动画的实例化渲染技术的快速绘制方法。
背景技术
作为虚拟现实技术(Virtual Reality)研究的一个热点与难点,大规模群体动画能实时地把密集人群的虚拟环境形象化。目前,它已经被广泛应用于商业、军事、娱乐、建筑、公共安全等众多领域。大规模虚拟人群实时绘制技术的主要应用领域是动态场景的绘制。与静态场景不同的是,动态场景在处理由海量数据所构成的大规模复杂场景的同时,还需要对场景中的人物角色所处的周围环境进行实时计算与动态处理,并根据特定的情况做出及时判断和反应。尤其是在角色数量不断增多的情况下,其所需的计算开销更是呈几何级数增长。大规模虚拟人群实时绘制技术从开始受到关注到现在成为前沿方向,其发展并未经历一个很长的过程。但是,这没有影响人们对于它的研究热情。国内外的相关关键技术层出不穷,研究学者们从简化绘制、加速绘制以及快速绘制等多方面进行了研究与分析,提出了一系列用于群体实时绘制的技术。在简化绘制方面,典型的方法包括基于点的绘制技术(Point-based Rendering ^Technique)与基于图像的绘制技术(Image-based Rendering ^Technique)。这两种技术都舍弃了传统的多边形渲染方法,通过新的渲染途径来达到简化的目的。前者是将点作为基本渲染图元,而后者则通过使用图像来代替多边形渲染。在加速绘制方面,最常用的方法包括隐藏面移除(Hidden Surface Removal)技术与几何细节层次(Levels of Detail)技术。引入它们的目的在于将大规模场景中的物体分策略进行渲染,以有效利用硬件资源,提高绘制速度。对于场景中不可见的物体,需要将其剔除掉;对于距离视点较近的物体,需要使用高分辨率进行精细渲染;对于场景中难以分辨的物体,则需要采用低分辨率进行模糊渲染。但是,上述技术都是通过CPU (中央处理器Central Processing Unit的缩写)对待绘制对象在场景中的相关信息进行采集以及计算处理,并将处理后的结果传入GPU(GPU英文全称Graphic Processing Unit,中文翻译为 “图形处理器”),再利用GPU来进行角色的实时绘制。在GPU得到迅猛发展的今天,现代图形处理单元已经从早期功能单一的图形芯片进化为可以媲美过去超级计算机处理性能的强大处理器,其运算能力与处理速度俨然已经远远超过了普通CPU。人们提出了基于可编程图像硬件的绘制加速技术,将过去CPU应该负责的某些计算处理工作交由可编程硬件GPU 来承担,既利用了 GPU超强的运算处理能力,提高了数据吞吐量,又最大程度地解放了 CPU, 使CPU能腾出更多的精力来进行群体模拟运算。而在大规模群体绘制技术方面,典型的方法包括实例化(Instancing)技术。在群体真实模拟中,每一个虚拟角色都应该具有一定的个性特征,例如外观、位置、动作等。因此,计算机需要对每一个角色进行单独处理,然后使用一次渲染调用进行绘制。但是,一次渲染调用只绘制一个角色,这种做法不仅费时费力,而且还严重限制着群体规模的大小。考虑到群体角色的几何相似性,人们提出了实例化技术,使用一次渲染调用就能绘制出多个实例。

发明内容
为了提高大规模虚拟人群实时绘制的效率与质量,实现大量人群快速逼真的绘制,本发明从简化绘制、加速绘制以及快速绘制方面出发,提供了一种结合基于点采样的模型简化生成技术、基于GPU视锥体裁剪与LOD策略的实时绘制加速技术与基于GPU蒙皮骨骼动画的实例化渲染技术的快速绘制方法。本发明所采用的技术方案是一种大规模虚拟人群实时绘制方法,该方法使用点采样技术生成对应等级的层次细节模型,并通过基于图形处理器的视锥体裁剪与多细节层次策略来加速实时绘制,最后通过基于图形处理器蒙皮骨骼动画的实例化渲染来达到快速绘制大规模虚拟人群的目的;其具体步骤包括步骤1,导入网格模型,提取模型几何信息与动画信息;步骤2,对模型进行八叉树空间划分;步骤3,对每一个结点所包含的模型表面进行点采样;步骤4,样本点的处理与建模;步骤5,根据指定参数建立多细节层次等级的模型采样数据;步骤6,在实时渲染时,对大规模场景中的虚拟人群进行图形处理器加速的视锥体裁剪;步骤7,对裁剪结果实行图形处理器加速的多细节层次策略,包括角色多细节层次选择与多细节层次排序;步骤8,根据上述步骤的输出,依次对每一层多细节层次等级的角色进行基于图形处理器蒙皮骨骼动画的实例化渲染。优选地,上述多细节层次等级的模型为三层。优选地,上述优选地,上述步骤2中具体包含以下步骤步骤2. 1,判断当前结点是否满足划分终止条件,结点的边长小于给定阀值或者结点中包含的三角形面片数小于给定阀值;步骤2. 2,八叉树创建完毕后,将模型中的所有三角形面片进行判断并添加保存到各个结点中。优选地,上述步骤3中对结点所包含的模型表面进行点采样时有效采样区间小于结点的区间。优选地,上述步骤4具体包括如下步骤步骤4. 1,通过线性插值法计算样本点的位置坐标与纹理坐标;步骤4. 2,选择与相交点距离最近的顶点的骨骼索引与权重信息作为样本点的动画控制信息;步骤4. 3,进行采样去冗余。优选地,上述步骤6具体包含以下步骤步骤6. 1,为场景中的每一种角色计算轴对齐的矩形包围盒,并使用该矩形包围盒的中心来替代角色;步骤6. 2,利用视图-投影矩阵构造视锥体六个裁剪平面信息,并传入渲染管线;步骤6. 3,将简化顶点集合作为输入传入图形处理器进行渲染。优选地,上述步骤7具体包含以下步骤步骤7. 1,创建缓存,分别用于接受多细节层次选择输出与多细节层次排序输出;步骤7. 2,计算出每一个可见角色与视点的距离,并将其依次与多细节层次阀值进行比较,从而得到对应的多细节层次等级;步骤7. 3,以多细节层次选择的输出缓存作为输入,分别对其使用渲染调用来进行多细节层次排序。优选地,上述步骤8具体包含以下步骤步骤8. 1,依次对每一层多细节层次排序渲染从图形处理器中下载排序结果;步骤8. 2,对每一层多细节层次等级以对应的多细节层次缓存与采样点数据作为输入进行实例化渲染。本发明的有益效果是提出了一种新的快速绘制方法。该方法引入并结合了基于点采样的模型简化生成技术、基于GPU视锥体裁剪与LOD策略的实时绘制加速技术以及基于GPU蒙皮骨骼动画的实例化渲染技术,来实现对大规模虚拟人群的实时绘制过程中的各个阶段进行简化与加速处理,达到最大程度地提升渲染性能的目的;同时,为了使得这三种技术在各自的处理阶段表现的更加出色,以及尽量减少它们在相互之间的过渡过程中的性能损耗,本发明还特别针对方法中的每一种技术做出了相应的优化与修改。包括在基于点采样的模型简化生成技术中通过判断有效采样区间来增加采样命中率,选择线性插值方法来重建样本点信息,采用样本点去冗余来简化采样结果,以保留更多的有效细节信息;通过一次采样数据能够建立多层LOD简化模型,减少了预处理时间;使用基于调色板蒙皮动画技术的样本点动画驱动方法,降低了计算开销,实现了群体动画的多样性以及对单个角色的交互控制,满足大规模虚拟人群实时动画的要求;在GS中对样本点进行分裂处理,生成摄像机朝向的布告板来替代样本点进行最终的绘制,利用了 GS对几何单元快速处理的优点,提高了渲染速度。在基于GPU视锥体裁剪与LOD策略的实时绘制加速技术中通过可编程渲染管线来实现视锥体裁剪与LOD策略,利用GPU强大的运算处理能力提高了数据吞吐量,最大程度地解放了 CPU,使CPU能更专注于群体模拟运算;引入了 LOD排序处理,实现了从加速系统到渲染系统的过渡。在基于GPU蒙皮骨骼动画的实例化渲染技术中在对样本点进行绘制时引入了 GS阶段,实现了从模型简化阶段到渲染阶段的过渡;通过GPU来完成样本点的蒙皮骨骼动画,并对相同LOD等级的角色进行实例化渲染,减少了绘制调用与模型切换次数,降低了内存需求,提高了大规模虚拟群体渲染的实时帧率。


图1显示出了本方法的流程图。图2显示出了动画纹理示意图。图3显示出了线性插值样本点计算方法。图4显示出了 “扩展后的视锥体”裁剪方法。图5显示出了 LOD选择的输出结果。图6显示出了 LOD排序的输出结果。图7显示出了实例化的基本原理。
具体实施例方式该实时绘制方法首先通过基于点采样的模型简化技术生成三层LOD等级的简化模型,在渲染时使用基于GPU的视锥体裁剪与LOD策略技术来实现绘制加速,最后通过基于 GPU蒙皮骨骼动画的实例化渲染技术来完成相同LOD等级角色的批次渲染。下面结合附图和实施为例对本方法进行进一步说明(图1所示的流程图给出了整个实施的具体过程)。步骤1 导入传统网格模型,提取模型几何信息与动画信息。本实施例选用以X为文件扩展名的.X模型文件作为输入,将几何模型数据填入顶点缓存(Vertex Buffer)与索引缓存(Index Buffer)。并使用如下方法进行模型动画信息的传输与使用将模型中全部动作的所有关键帧的每块骨骼变换矩阵都压缩到一张纹理数据中,即动画纹理。其中,每块骨骼的变换矩阵都被压缩成了 3x4的矩阵,并以行为单位被线性地存储到纹理中的一个纹理像素中,排列方式如图2所示。其中,每行数据的个数必须是4的倍数。在可编程渲染管线的顶点着色器阶段,可以通过对动画纹理解码得到所需的骨骼变换矩阵。压缩方法如下
权利要求
1.一种大规模虚拟人群实时绘制方法,该方法使用点采样技术生成对应等级的层次细节模型,并通过基于图形处理器的视锥体裁剪与多细节层次策略来加速实时绘制,最后通过基于图形处理器蒙皮骨骼动画的实例化渲染来达到快速绘制大规模虚拟人群的目的;其具体步骤包括步骤1,导入网格模型,提取模型几何信息与动画信息; 步骤2,对模型进行八叉树空间划分; 步骤3,对每一个结点所包含的模型表面进行点采样; 步骤4,样本点的处理与建模;步骤5,根据指定参数建立多细节层次等级的模型采样数据;步骤6,在实时渲染时,对大规模场景中的虚拟人群进行图形处理器加速的视锥体裁剪;步骤7,对裁剪结果实行图形处理器加速的多细节层次策略,包括角色多细节层次选择与多细节层次排序;步骤8,根据上述步骤的输出,依次对每一层多细节层次等级的角色进行基于图形处理器蒙皮骨骼动画的实例化渲染。
2.根据权利要求1所述的方法,其特征在于,所述多细节层次等级的模型为三层。
3.根据权利要求1所述的方法,其特征在于,所述步骤2中具体包含以下步骤 步骤2. 1,判断当前结点是否满足划分终止条件,结点的边长小于给定阀值或者结点中包含的三角形面片数小于给定阀值;步骤2. 2,八叉树创建完毕后,将模型中的所有三角形面片进行判断并添加保存到各个结点中。
4.根据权利要求1所述的方法,其特征在于,所述步骤3中对结点所包含的模型表面进行点采样时有效采样区间小于结点的区间。
5.根据权利要求1所述方法,其特征在于,所述步骤4具体包括如下步骤 步骤4. 1,通过线性插值法计算样本点的位置坐标与纹理坐标;步骤4. 2,选择与相交点距离最近的顶点的骨骼索引与权重信息作为样本点的动画控制信息;步骤4. 3,进行采样去冗余。6.根据权利要求1所述方法,其特征在于,所述步骤6具体包含以下步骤步骤6. 1,为场景中的每一种角色计算轴对齐的矩形包围盒,并使用该矩形包围盒的中心来替代角色;步骤6. 2,利用视图-投影矩阵构造视锥体六个裁剪平面信息,并传入渲染管线;步骤
6.3,将简化顶点集合作为输入传入图形处理器进行渲染。
7.根据权利要求1所述方法,其特征在于,所述步骤7具体包含以下步骤步骤7. 1,创建缓存,分别用于接受多细节层次选择输出与多细节层次排序输出;步骤7.2,计算出每一个可见角色与视点的距离,并将其依次与多细节层次阀值进行比较,从而得到对应的多细节层次等级;步骤7. 3,以多细节层次选择的输出缓存作为输入,分别对其使用渲染调用来进行多细节层次排序。
8.根据权利要求1所述方法,其特征在于,所述步骤8具体包含以下步骤 步骤8. 1,依次对每一层多细节层次排序渲染从图形处理器中下载排序结果; 步骤8. 2,对每一层多细节层次等级以对应的多细节层次缓存与采样点数据作为输入进行实例化渲染。
全文摘要
本发明涉及了一种大规模虚拟人群实时绘制方法。包括以下步骤步骤1,导入传统网格模型,提取模型几何信息与动画信息。步骤2,对模型进行八叉树(Octree)空间划分,其中每一个结点都保存了与结点几何大小相关的部分模型的近似描述。步骤3,对每一个结点所包含的部分模型表面进行点采样。步骤4,样本点的处理与建模,包括插值计算样本点信息,样本点动画信息选取和过采样去冗余等。步骤5,根据指定参数建立三层LOD(LevelsofDetail)等级的模型采样数据。步骤6,在实时渲染时,对大规模场景中的虚拟人群进行GPU加速的视锥体裁剪。步骤7,对裁剪结果实行GPU加速的LOD策略,包括角色LOD选择与LOD排序。步骤8,根据上述步骤的输出,依次对每一层LOD等级的角色进行基于GPU蒙皮骨骼动画的实例化渲染。本发明能够实现大规模虚拟人群的快速实时绘制。
文档编号G06T13/40GK102157008SQ20111009077
公开日2011年8月17日 申请日期2011年4月12日 优先权日2011年4月12日
发明者何明耘, 卢光辉, 张颖, 曹跃, 蔡洪斌, 邱航, 陈雷霆 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1