一种大规模虚拟动态场景简化方法

文档序号:6586422阅读:169来源:国知局
专利名称:一种大规模虚拟动态场景简化方法
技术领域
本发明属于虚拟现实技术领域,尤其涉及一种大规模虚拟动态场景简化方法。
背景技术
大规模群体动画一直是虚拟现实技术研究的热点之一。随着计算机图形学的发 展,建模技术已经越来越成熟,模型也越来越精细。而群体模拟中大量差异性的模型使用, 使得渲染速度和仿真的逼真性成为群体模拟的关键性问题。对于这个问题,静态场景的简 化技术已经有很多很成熟的方法。 大规模动态群体场景的显示主要是由场景的特性来决定的,包括个体的独立性、 运动性、场景的规模、逼真度、实时性等要求。从不同的性能要求也产生了各种不同的显示 方法。现有的大规模场景的显示技术主要可以分为以下三类基于图像的显示方法、基于网 格简化的LOD(Level of Detail)方法和基于采样点的多分辨率显示方法。
随着三维扫描技术的进步,利用采样点来表征复杂物体表面并进行交互绘制已成 为计算机图形学发展的一个重要方向。点绘制方法采用离散化且与视点无关的点集来表征 物体表面,这些点不仅记录着物体表面的几何信息(位置、法向量),而且还记录着如颜色、 材质等其它信息。与传统的三角形面片绘制方法相比,点绘制方法不包含点与点之间的连 接关系,绘制时不需要维护模型的拓扑一致性,便于重取样,可以建立灵活的层次结构来实 现多分辨率绘制。由于大规模动态场景的复杂性,目前基于点采样模型的绘制速度和实现 效果还不甚理想。

发明内容
为了提高大规模群体动画的渲染速度和渲染效果,本发明提供了一种大规模虚拟
动态场景简化方法。本发明采用固定网格采样并去除采样点冗余,减少信息存储量,提高了
预处理速度,采用类X文件而非采用关键帧技术,简化了群体动画的复杂性,同时根据不同
的L0D级别建立不同的类X文件,进行群体渲染,提高渲染速度和渲染效果。 本发明一种大规模虚拟动态场景简化方法,该方法包括步骤 步骤l,传统网格模型输入。 步骤2,计算网格模型的原始包围盒,根据原始包围盒建立新的正方体包围盒。
步骤3,根据新的正方体包围盒建立固定网格,保留基于坐标轴XYZ三个方向的射 线列表。 步骤4,对输入模型根据射线列表中的所有射线和物体表面的交点,求得物体表面 的点采样。 步骤5,过度采样点去冗余首先设置充分采样点的采样最大距离为R,再对每个 步骤4中求得的采样点,进行包围球计算,球心为采样点本身,半径为R/2,最后删除包围球 中的其他采样点,只保留其中一个采样点。 步骤6,判断可保留三角形面片,若三角形面片中包含的采样点数大于确定的值,则保留当前三角形面片于三角形列表中。 步骤7,判断可保留采样点,若三角形列表中三角形索引和采样点的标识相同,则
删除对应的采样点列表中的采样点,而将其余的采样点保留在采样点列表中。 步骤8,用采样点列表和三角形列表的信息替换原始模型X文件中的顶点信息和
面的信息,生成类X文件,包括以下操作 步骤8. 1 ,读取原始模型信息; 步骤8. 2,从顶点信息中分离出各个骨骼的顶点缓冲区和面索引缓冲区;
步骤8. 3,判断各个采样点所属的骨骼区域; 步骤8.4,用采样点替换原始模型骨骼的顶点信息,生成新的顶点缓冲区;
步骤8. 5,根据面的索引判断三角形所属的骨骼区域; 步骤8.6,用三角形顶点信息替换原始模型中的顶点信息,生成新的顶点缓冲区;
步骤8. 7,绑定骨骼动画控制信息,生成类X文件,采样点和三角形分别生成两个 文件。 步骤9,根据不同的L0D级别建立不同的类X文件。 步骤IO,根据不同的距离选用不同的L0D级别模型进行群体渲染。 本发明的有益效果是对不同的LOD级别分别进行数据存储,使用了比空间八叉
树更为简化的数据结构,节省了存储空间和数据读取的时间,可以加快预处理和绘制的时
间;使用固定网格进行采样,可以更好更快的控制采样点的密度,同时可以加快采样的速
度,不需要使用多重采样,简化了模型表面的点采样过程,可以大大提高预处理速度;使用
类X文件,而不使用基于关键帧的采样,去掉了采样点基于时间的前后联系,简化了关键帧
之间采样点的对应设置过程,降低了动画驱动的复杂度,而且使用不同X文件L0D级别的技
术已经相当成熟,渲染速度比使用关键帧的技术更快。


图1为本发明一种大规模虚拟动态场景简化方法的流程图; 图2为本发明中模型的新包围盒的建立和固定网格的划分示意图; 图3为本发明中平面模型的基于某个密度的固定网格采样示意图; 图4为本发明中包围球中有两个采样点去冗余的规则示意图; 图5为本发明中包围球中有多个采样点去冗余的规则示意图; 图6为本发明中三角形面片和采样点的保留规则示意图。
具体实施例方式
下面结合附图和实施例对本发明优选实施方式进一步说明
图1所示的流程图给出了本发明整个实施的具体过程 步骤l,传统网格模型的输入,在本实施例中选用了 .X文件的模型作为输入。
步骤2,计算模型的原始包围盒,通过使用获取模型包围盒的函数计算出模型包围 盒的左下角顶点坐标和右上角顶点坐标,分别计算出XYZ三个方向包围盒的边长,选取三 个边长中最大值作为新正方体包围盒的边长,建立新的包围盒。 步骤3,根据新的包围盒边长L的固定比例值作为单位长度,划分固定网格,具体划分如图2所示,包围盒的固定比例值决定了采样点的密度和采样点级别,以固定网格在 X0Y面,X0Z面和YOZ面上的投影点作为射线顶点,以对应的坐标轴Z、 Y和X作为射线方向 建立射线,将射线保留在射线结构的列表中。 步骤4,遍历射线列表,计算每一条射线和物体的交点列表,通过使用获取射线和 物体交点的函数得到每一个交点坐标,为每一个交点设置一个标识,用于表示该交点所属 的面片,将交点信息保留在采样点列表中。图3显示了平面模型的固定网格采样,空间模型 的采样与其类似。 步骤5,对上述步骤4采样点列表去冗余,遍历采样点列表,计算每一个采样点与 其后的每一个采样点的距离,当距离小于某个值的时候,删除采样点列表中位置靠后的那 个采样点,将其后的采样点均向前移动一个位置,遍历结束后保留的采样点列表将是经过 化简和去冗余之后的采样点列表。具体操作如下 步骤5. 1设置充分采样点的采样最大距离为R,R为新的网格模型包围盒的边长L 固定比值( 一般情况下R = 1/8L, 1/16L, 1/32L或1/64L等); 步骤5. 2对每个步骤4中求得的采样点,进行包围球计算,球心为采样点本身,半 径为R/2 ; 步骤5. 3删除包围球中的其他采样点,如图4所示当采样点周围R/2范围内有其 他采样点,则删除其他采样点,如图5所示当已删除的采样点R/2范围内有不止一个采样 点,则只保留其中一个,删除其他采样点。 步骤6,计算模型每个面片中采样点的数量,判断可保留的三角形面片,如图6中 保留的三角形面片3、4和5。将其保留在三角形列表中,具体包括如下操作
步骤6. 1根据采样点的标识(三角形面片的索引)计算出所有三角形面片中所包 含的采样点数目; 步骤6.2当前三角形面片中采样点数量大于某个值时(通常为1-3的某个整数 值),保留当前三角形面片在三角形列表中。 步骤7,判断可保留采样点,若三角形列表中三角形索引和采样点的标识相同,则 删除对应的采样点列表中的采样点,而将其余的采样点保留在采样点列表中;如图6中三 角形面片1、2和6中采样点予以保留,而三角形面片3、4和5中采样点予以删除。
步骤8,用生成的三角形列表和采样点列表替代原始模型中的顶点数据和面片数 据,动画控制驱动新的模型,生成类X文件。直接使用原始动画控制驱动新模型的具体流程 如下 步骤8. 1读取原始模型信息,主要包括顶点缓冲区、面索引缓冲区和动画控制信 息等; 步骤8. 2从顶点信息中分离出各个骨骼的顶点缓冲区和面索引缓冲区; 步骤8.3读取采样点列表中的采样点,根据采样点的面索引标识,判断各个采样
点所属的骨骼区域; 步骤8. 4用采样点替换原始模型中该骨骼的顶点信息,生成新的顶点缓冲区;
步骤8.5读取三角形列表中每个三角形的面索引信息,根据面的索引判断三角形 所属的骨骼区域; 步骤8.6用三角形列表的顶点信息替换原始模型中的顶点信息,生成新的顶点缓冲区; 步骤8. 7绑定骨骼动画控制信息,生成类X文件,采样点和三角形分别生成两个文 件。 步骤9,根据不同的网格细分重复步骤3到步骤8,建立不同L0D级别的类X文件。 建立每一次的类X文件时,选用原始模型正方体包围盒边长的不同比例值进行计算( 一般 有包围盒边长的1/8, 1/16, 1/32, 1/64等),每一个级别生成一个类X文件,从而建立起原始 模型的基于点采样的L0D级别模型。 步骤IO,根据物体包围盒到视点的最小值,选取不同LOD级别的类X模型进行渲 染。对每一个类X文件的绘制要经过采样点和三角形面片两个部分的绘制。
权利要求
一种大规模虚拟动态场景简化方法,其特征在于,该方法包括步骤步骤1,传统网格模型输入;步骤2,计算网格模型的原始包围盒,根据原始包围盒建立新的正方体包围盒;步骤3,根据新的正方体包围盒建立固定网格,保留基于坐标轴的射线列表;步骤4,对输入模型进行固定网格的表面点采样;步骤5,过度采样点去冗余;步骤6,判断可保留三角形面片,保留在三角形列表中;步骤7,判断可保留采样点,保留在采样点列表中,删除不可保留采样点;步骤8,用采样点列表和三角形列表的信息替换原始模型X文件中的顶点信息和面的信息,生成类X文件;步骤9,根据不同的LOD级别建立不同的类X文件;步骤10,根据不同的距离选用不同的LOD级别模型进行群体渲染。
2. 根据权利要求1所述的一种大规模虚拟动态场景简化方法,其特征在于,所述的步骤3中根据固定网格建立基于坐标轴XYZ三个方向的射线列表。
3. 根据权利要求1所述的一种大规模虚拟动态场景简化方法,其特征在于,所述的步骤4中根据射线列表中的所有射线和物体表面的交点,求得物体表面的点采样。
4. 根据权利要求1所述的一种大规模虚拟动态场景简化方法,其特征在于,所述的步骤5进一步包括步骤5. l,设置充分采样点的采样最大距离为R ;步骤5. 2,对每个所述的步骤4中求得的采样点,进行包围球计算,球心为采样点本身,半径为R/2 ;步骤5.3,删除包围球中的其他采样点,只保留其中一个采样点。
5. 根据权利要求1所述的一种大规模虚拟动态场景简化方法,其特征在于,所述的步骤6中若三角形面片中包含的采样点数大于确定的值,则保留当前三角形面片于三角形列表中。
6. 根据权利要求1所述的一种大规模虚拟动态场景简化方法,其特征在于,所述的步骤7中若三角形列表中三角形索引和采样点的标识相同,则删除对应的采样点列表中的采样点,而将其余的采样点保留在采样点列表中。
7. 根据权利要求1所述的一种大规模虚拟动态场景简化方法,其特征在于,所述的步骤8中生成类X文件过程进一步包括步骤8. l,读取原始模型信息;步骤8. 2,从顶点信息中分离出各个骨骼的顶点缓冲区和面索引缓冲区;步骤8. 3,判断各个采样点所属的骨骼区域;步骤8.4,用采样点替换原始模型骨骼的顶点信息,生成新的顶点缓冲区;步骤8.5,根据面的索引判断三角形所属的骨骼区域;步骤8.6,用三角形顶点信息替换原始模型中的顶点信息,生成新的顶点缓冲区;步骤8. 7,绑定骨骼动画控制信息,生成类X文件,采样点和三角形分别生成两个文件。
全文摘要
本发明所述一种大规模虚拟动态场景简化方法涉及虚拟现实技术领域的大规模动态场景的简化技术。为了提高大规模群体动画的渲染速度和渲染效果,本发明采用固定网格表面点采样并去除采样点冗余,减少信息存储量,提高了预处理速度,用保留在采样点列表和三角形列表的信息替换原始模型X文件中的顶点信息和面的信息,生成类X文件而非采用关键帧技术,简化了群体动画的处理的复杂性,同时根据不同的LOD级别建立不同的类X文件进行群体渲染,提高渲染速度和渲染效果,从而本发明能够有效地简化大规模虚拟动态群体场景。
文档编号G06T15/70GK101770655SQ20091026014
公开日2010年7月7日 申请日期2009年12月25日 优先权日2009年12月25日
发明者何明耘, 何晓曦, 卢光辉, 曹跃, 曾维薇, 蔡洪斌, 陈雷霆 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1