APP下载

数字博物馆可视化LOD技术研究

2012-11-05张仁俊

电子测试 2012年9期
关键词:级别绘制对象

李 培, 张仁俊

(兰州交通大学 电子与信息工程学院,甘肃兰州 730070)

0 引言

数字博物馆是将文物和历史场景通过三维建模,利用虚拟现实技术在计算机网络上进行展示,并实现浏览者与文物、浏览者与浏览者之间的交互,是传统展示方法与先进计算机虚拟技术的结合。

虚拟视景的实时程度,从一定意义上决定了虚拟现实的真实程度。也就是说,为了达到较好的真实感,虚拟视景要求图形的生成速度达到实时,因此,要确保复杂虚拟场景的实时性,即图形的显示速度。

本文提出了一种适合博物馆虚拟场景实时显示的管理机制,并提出了一种改进的基于时间估计和对象重要性的实时LOD选择算法,大大降低了场景的复杂度,提高了场景载入的实时性。

1 限时自适应LOD技术

1.1 LOD细节层次技术

LOD(level of detail)细节层次技术[1],它是指对于同一个场景或场景中的物体使用一组具有不同细节程度的模型对象,不同细节程度模型的多边形复杂度也不一样,细节程度越高模型对象所包含的多边形的数量也越多[2]。在实时渲染和绘制时,浏览器会根据用户的视点离该物体的远近自动显示相应的模型。

博物馆场景模型的实时绘制中,如果要做到画面的连续性,一秒之内至少需要绘制25帧的数据,那么对于每一帧来说就只有0.04 s的限定时间,如果某一帧场景需要绘制的对象太多或者太复杂,那么绘制时间就会超过0.04 s,这样就会产生停顿现象,产生延迟,进而影响用户使用的满意度[4]。所以在限时自适应LOD的机制中,为了保证在限定的时间内将数据绘制完,就会出现降低绘制对象LOD级别的情况,如本来需要的是最精细的LOD级别就会被替换成一般精细或者模糊的LOD级别。这样做就是为了在速度和效果之间寻求一个平衡,能够让用户满意。

1.2 博物馆场景模型限时自适应机制

本文针对博物馆场景模型的特点,将博物馆场景模型划分为6大功能模块,分别是:最优化绘制方案选择模块、绘制模块、时间估计模块、重要性估计模块、数据调度管理模块和性能检测模块。图1为博物馆场景模型自适应LOD机制流程图。

图1 博物馆场景模型自适应机制流程图

各模块的主要功能如下:

数据调度管理模块:根据当前的博物馆场景参数调入当前视域范围内的模型数据。

时间估计模块:主要包含数据装载时间估计、绘制时间估计等功能,用于为最优化绘制方案选择模块提供参考。

重要性估计模块:计算调入场景中的每个模型的相对重要性程度,并把它作为在绘制时间不能满足以最高细节绘制时选择合适LOD级别的参考。

最优化绘制方案选择模块:此模块根据场景绘制的总时间和各个模型的绘制时间估计重要性计算的结果,在控制总绘制时间小于绘制时间预算的前提下,为每个模型选择合适的LOD级别,以提供尽可能好的绘制效果。

绘制模块:将确定需要绘制的模型数据进行重组并进行分类绘制。

性能检测工具模块:此模块在每帧收集各项监测数据,为时间估计模块提供分析数据集。

2 基于时间估计和对象重要性的实时LOD选择

在博物馆场景模型的实时绘制过程中,为了提高实时性,方法之一我们必须对所要显示的模型进行不同LOD级别的选择,而选择哪个层次的模型则是由绘制该对象所需要的时间和对象的重要性来一起决定的[6]。在不同绘制时间和重要性的选择下,做到绘制速度和显示效果的最佳配置。

2.1 绘制时间估计

目前针对几何对象绘制时间估计的研究大多数都是针对不含纹理的几何模型。典型的有Funkhouser和Wimmer所作的研究[7]。Funkhouser:将绘制一个几何模型的时间表达为一个包含顶点个数、三角形个数以及实际绘制的像素个数等3个因素的线性表达式,根据具体的实验模型测试得出相应表达式的系数;Wimme:指出Funkhouse的公式只是给出了绘制一个对象的时间下限,真实的绘制时间趋向于顶点转换和栅格化的和,决定几何传输时间的是真正转换的顶点数量而不是仅仅所有顶点或多边形的数量,因此,他提出了一个改进公式,以转换的顶点数及实际绘制的像素个数两个因素的线性表达作为时间估计函数。由于此两类方法都没有考虑纹理数据传输所耗费的时间,所以对于包含纹理对象的场景内容不具备参考性和应用性。

随着人们对文物以及场景真实感期望的提高,纹理的使用率在博物馆景模型的显示中所占的比例越来越大。由于纹理数据分辨率的不断提高,在三维显示过程中,其数据转换的时间以及在显卡内部的数据调度时间成为不可忽略的部分,严重时可以引起绘制流程的明显停顿。所以要对博物馆场景模型的绘制时间做出准确的估计,就必须将纹理的显示时间一起考虑进去。

由于绘制整个场景的时间可以认为是各个对象绘制时间的总和,因此可以对每个对象的绘制时间进行考虑。本文将纹理量作为绘制时间时考虑的一个因素,认为每个对象的绘制时间可以用如下公式表达:

其中,v_number表示当前模型需要绘制顶点的个数;p_number表示该模型在屏幕上投影的像素数;t_size表示在绘制此模型时所需要的纹理量;系数c1,c2,c3,c4则是表示不同的硬件和软件环境。

2.2 对象重要性

在博物馆场景模型绘制过程中,由于受时间限制不可能将所有的模型都按照最高细节层次进行绘制,因此就需要对各个对象的绘制层次作出适当的选择,这也是博物馆场景模型限时自适应LOD算法的核心问题,如何在给定的时间预算内,选择合适的层次模型以达到最佳的可视效果。

在LOD管理中最重要的问题是不同分辨率之间模型的切换。本文中用来决定LOD细节层次的因素主要有距离、偏心率、速度和投影大小等[8]。

距离(distance):用距离来决定LOD的选择是最简单直接的一种方法。当视点与物体之间的距离在一定范围内时将采用高分辨率的LOD模型,当视点与物体之间的距离在我们设定的范围之外时采用低分辨率的模型。这里的距离既可以是视点与物体中心点之间的距离,也可以是视点与某一个指定的点之间的距离。基于距离的LOD简单而且高效,只需要很少的条件表达式就可以确定一个距离是否超过了我们所设定的距离的阈值。但也存在明显的缺陷:选择物体内的任意点来进行所有的距离计算将产生不可避免的误差;由于到视点的真实距离可能会根据方向而发生变化,这样会导致明显的视觉跳跃。因此,单一的距离并不能完全说明对象的重要性。

偏心率(eccentricity):偏心率是利用视点对超出视域中心区域的对象的感知能力递减的特性来选择LOD。视网膜的中心用来在固定的面积内搜索高细节层次模型,而视网膜的边缘被用来选择下一个固定点的位置。据此可以将显示区域分为两个部分:一个是中间的高细节区域,对应于视点可视域的中心位置;另一个是四周边缘的简单细节区域,对应于可视域的边缘位置。经验显示减少周围区域的视觉复杂度并不会显著影响视觉搜索任务的完成。这种边缘递减策略需要得到用户当前视线的方向,跟踪头部或眼睛的移动,或者假设用户一直注视着屏幕显示区域的中心,所以也有一定的局限性。

速度(speed):基于速度的LOD是指根据对象相对于视点的运动角速度来选择LOD层次。快速移动穿过屏幕的对象表现出运动模糊,它们仅能在一个很短的时间内被看到,用户可能看不清楚它们,可以用较低分辨率的细节层次来表示,所以它可以作为判断对象重要性的依据之一。

投影大小(area):基于投影大小的方法利用一个物体投影到屏幕的大小来建立LOD的细节层次,它可以避免一些基于距离LOD的问题,因为投影大小对显示分辨率、对象缩放或视角等的变化不是很敏感。而且,基于投影大小的LOD选择使用整个对象而不是用户选择的一个任意点来进行计算,因此比基于距离的LOD技术更准确,更具有一般性。但是,基于投影大小的计算代价也要相对高一些,并且此方法不具有旋转的不变性,即:当一个很薄的对象旋转时,其在屏幕上的投影大小会发生剧烈的变化,从而导致LOD的不稳定或波动。

本文根据以上4个因素来判断对象的重要性,每个重要性因子都定义为0~1之间的数字,对象的重要性用这4个重要性因子的乘积来表示,表达式如下:

3 算法流程

在绘制时间受限的情况下,为了保证绘制时间不超出预算,并提供尽可能好的图像质量,因此需要合适的场景绘制选择算法,以决定每个对象以何种LOD级别进行绘制。在参考和对比已有相关算法的基础上,本文根据博物馆场景模型的绘制特点提出了一种基于绘制时间估计和对象重要性的LOD选择方法。

在每帧进行绘制前,首先对本帧要绘制的对象的LOD级别进行选择,首先计算本帧所有对象在现有LOD级别上的总的绘制时间,若开始计算的时间超过了限定的时间,则按照对象重要性由小到大的排列,依次降低当前对象的LOD级别,直到总的绘制时间在限定时间以内,直到绘制结束;若小于限定时间,则根据对象重要性的大小在不超过限定时间的基础上增加对象的LOD级别,直到绘制结束。整个过程的循环步骤如下:

步骤1:计算当前帧中所有对象的LOD级别绘制的总的绘制时间;

步骤2:如果计算的总时间小于限定时间,则执行步骤3,否则执行步骤5 ;

步骤3:将各个对象按照重要性大小顺序进行排列,按顺序对每个对象执行步骤4,完成后结束绘制;

步骤4:当对象的当前LOD级别低于最佳级别时,增加此对象的LOD级别后在不会超出限定的绘制时间要求内,则逐级增加此对象的LOD级别;

步骤5:将各个对象按照重要性大小反向排列,按顺序对每个对象执行步骤6,完成后结束绘制。

步骤6:当对象的当前LOD级别高于最低级别限制时,降低此对象的LOD级别,直到总的绘制时间小于限定时间。

图2为限时绘制的步骤示意图。

图2 限时绘制的步骤示意图

4 实验结果和性能分析

在固定视角情况下,人眼对25帧以上的显示速度已经没有察觉(如电视、电影),但是对于快速变换的视角而言,显示速度一般要求在30帧以上。所以,评价显示性能不仅要看显示的图像质量,也要看显示的速度。帧数(fps)就是衡量显示速度的指标。实验中得出以下数据(见表1),在较高的LOD层次上,渐进网格的算法速度比较快,对于60000多个面片的模型,帧数都能在50帧以上。随着层次的增加,帧数越高,说明三角形的查找速度仍然是比较快的。考虑到查找线性表要消耗一部分时间,从较高的层次突进到较低层次,显示速度会暂时出现一些下降,但由于该算法中三角形在线性表中是顺序排列的,所以速度的下降不是很明显,对于实时显示而言算法效率是比较高的。

另外,对于原来的未采用该算法的模型显示速度来说,尽管显示速度上与采用该算法的模型没有太大的区别,甚至在某些层次显示速度还略高一些,但是这些模型所占用的存贮量是很大的(见表2),尤其在简化层次多的时候,采用增加空间复杂度来减少时间复杂度的方法,这对于存储空间来讲是很大的浪费。那么在显示速度差不多的情况下,渐进网格可以减少存储量,可以在时间和空间上达到一个平衡。

表1 LOD渐进网格不同层次的显示速度

表2 不同层次的三角形面片数量

图3表明随着模型与摄像机之间的距离的变化,渐进网格用了不同分辨率的网格,较远距离使用的网格数目是130,而距离最近的网格数目是8040,但是从视觉角度上不太能察觉模型的明显变化。

图3 LOD渐进网格的实验显示

5 结论

在博物馆场景模型在线实时可视化方法中,本文提出了一种限时自适应LOD方法,分析了其中严重影响绘制帧率的数据装载和绘制工作量的因素,并从数据量的角度对绘制时间进行分析,将每个对象的绘制时间预先估计,根据对象的重要性来选择帧内每个对象的LOD级别。在对对象的绘制时间进行估计时,将纹理数据一起考虑,更加符合实时漫游的现实情况。

[1] 祝清鲁.大规模场景中LOD的技术研究与应用[D].北京:北京邮电大学,2009.

[2] 罗丹.数字城市模型自适应相关LOD技术研究[D].武汉:华中师范大学,2009.

[3] 沙从术.LOD 技术在三维地形图实时可视化中的应用研究[J].价值工程,2011,22(1):154-155.

[4] J.Airey,J.Rohlfetc.Towards Image Realism with Interactive Update Rates in Complex Virtual Buliding Environments[J].Computer Graphics,ACM,1990,24(2):41-50.

[5] 朱涛.虚拟现实中场景建模技术的研究及应用[D].武汉:武汉理工大学,2010.

[6] Rossignac J.,Bowel P. Multi-resolution 3D approximation for rendering complex seenes[A]. Proeeedings of the 20th Conference Modeling in Computer GraPhic [C].Berlin,1993:453-465.

[7] 郭阳明,翟正军.虚拟场景生成中的LOD技术综述[J].计算机仿真,2005,22(12):180-183.

[8] 崔镭.虚拟现实中LOD技术的研究[D].西安:西安电子科技大学,2008.

猜你喜欢

级别绘制对象
痘痘分级别,轻重不一样
涉税刑事诉讼中的举证责任——以纳税人举证责任为考察对象
超萌小鹿课程表
放学后
迈向UHD HDR的“水晶” 十万元级别的SIM2 CRYSTAL4 UHD
新年导购手册之两万元以下级别好物推荐
攻略对象的心思好难猜
你是什么级别的
基于熵的快速扫描法的FNEA初始对象的生成方法
区间对象族的可镇定性分析