第30卷第7期2005年7月武汉大学学报信息科学版
GeomaticsandInformationScienceofWuhanUniversityVol.30No.7
July2005
文章编号:16718860(2005)07063604文献标志码:A
基于可见性预处理的地形模型视相关简化算法
蒲浩1宋占峰1
(1中南大学土建学院,长沙市韶山南路22号,410004)
摘要:提出了一种基于可见性预处理的点删除简化算法。该算法针对海量地形数据,首先建立了高效的空间索引系统,利用这一索引系统快速完成了视锥截取、背面剔除和隐藏面消除等可见性测试,再对预处理后的网格模型依据顶点曲率大小进行点删除简化。实验表明,采用可见性预处理可大大提高绘制速度,并且绘制帧速率基本于模型的复杂度。
关键词:模型简化;视相关简化;细节层次;交互渲染中图法分类号:P283.7;P208
经过多年的研究,国内外已经提出了多种模型简化方法。在众多的简化算法中,累进网格技术可以生成细节层次连续的网格简化模型,而且较易考虑视相关准则,因此成为当前较流行的模型简化方法。但该方法需要预先为整个场景生成一棵简化操作顶点树,用于记录大量与简化操作相关的正向和逆向信息,对于具有海量数据的地形场景,这将耗费巨大的内存,且简化操作的计算量受原始模型复杂度的影响较大。因此,本文选择具有较高执行效率的顶点删除简化算法。
[1~7]
值越大,说明顶点周围地形变化越大,顶点处曲率越大;值越小,说明顶点周围地形越平坦,顶点处曲率越小。为方便计算,实际计算值取为cos。如图1所示。
图1顶点曲率计算
Fig.1CalculationoftheVertexCurvature
1点删除简化算法的基本原理
顶点删除简化算法是一种几何去除算法,它是在候选的顶点序列中,依据某种去除条件依次取出误差代价最小的顶点,将其删除,然后对移去
顶点产生的空洞进行局部三角剖分。重复上述过程,直到满足某些终止条件。关于去除条件的选择,文献[1]采用了顶点到平均平面的距离,若该距离小于阈值,则删除该顶点,通过调整距离阈值的大小可以生成不同细节层次的简化网格,即LOD模型。
由于顶点曲率值能代表顶点几何位置的重要性,本文采用了以顶点曲率作为去除条件的办法,依据顶点曲率大小确定出顶点删除操作的优先级。曲率的计算与顶点的法向锥半角有关。
收稿日期:20050429。
删除顶点后的局部三角剖分可采用约束
Delaunay三角剖分算法[8]。可见,若原三角网满足Delaunay准则,经过点删除后的简化网格依然能保持这一特性。
经测试,上述方法对于复杂程度不高的单个模型能起到较好的简化作用,但对于具有海量数据的大规模地形场景漫游,若不加任何处理,直接采用上述算法,由于简化准则中仅考虑了地形特征(曲率),则不仅计算量大,而且简化效果也不理想,难以满足实时绘制的需要。为此,本文提出了先应用视相关准则进行可见性预处理,再对预处理后的网格进行二次简化的方法。为了快速完成预处理,笔者针对海量数据建立了高效的网格点三角形的空间对象索引。
项目来源:铁道部科技研究开发计划资助项目(铁建电(2001)11号)。第30卷第7期蒲浩等:基于可见性预处理的地形模型视相关简化算法
637
被离散到各个叶子网格中,并且由叶子网格将这
2空间对象索引
空间对象索引是依据空间对象所在的位置及分布特征,按一定顺序编排的数据结构,该结构中包含有空间对象的标识和定位该对象的内容信息。而空间对象检索则是依据所设计的空间对象索引在数据库中找出符合条件的一种数据操作。空间对象检索方式很多,对地形模型的简化而言,主要是空间位置信息的查找,如快速查找共享某个顶点的三角形集合,包含给定点的三角形等。为此,笔者建立了网格散点三角形的索引机制,原理如下。
1)为地形点建立网格索引
设点集V中有N个离散点,对V进行多级网格划分,使得叶子网格中的点不大于阈值log2N,网格的宽度逐级减小,如图2所示。多级自适应网格划分点集的优点在于:嵌套深度浅,耗费空间小,点集划分速度快,时间复杂度为0(N),便于点及三角网的管理等。
本文采用多叉树的数据结构模拟多级自适应网格,经过多级自适应网格划分点集后,数据点已
些数据点管理起来。每一叶子网格中记录了第一个落入该网格中的数据点号,而其余落在该网格的数据点通过点结构中的 NextPtNo!指针以链表方式连接。
图2多级网格自适应划分
Fig.2CreatingSelfadaptiveMultilevelGrids
2)为三角形建立点索引
在将地形点投入相应网格,建立网格索引的同时,每个数据点通过点结构中的三角形指针分别记录一个以该点为顶点的三角形,这些记录在逐点删除的过程中,随着网形的变化会动态更新。
通过这一索引系统,可建立起网格散点三角形之间的空间映射关系,如图3所示。借助这种映射,可方便快捷地检索出给定点附近的顶点集及三角形集合等拓扑信息,为快速完成可见性预处理奠定了基础。
图3网格散点三角形空间索引Fig.3SpaceIndexofGridVertexTriangle
3算法描述
算法包括可见性预处理和基于曲率的点删除简化两部分。3.1可见性预处理
可见性预处理是依据视锥准则、背面剔除准则和屏幕投影误差准则,从原始网格模型中快速搜索出当前的视相关网格和点集,从而大幅度减少后续的简化计算量。3.1.1视锥截取
地形三维场景虽然具有较高的复杂度,但在视点给定的情况下,人的视域范围是有限的,因此,有必要先依据视见体的大小从原始点集中挑选出与当前视点相关的结点,本文将其称为活动结点,后续的计算及简化操作只针对活动结点进行,这将显著减少模型简化的计算量。
视见体是一个由6个面组成的锥体,6个面的方程可根据给定的视点坐标和视锥张角求出。根据给定点与视见体的关系,可以将其划分为三类:可见点、部分可见点和不可见点。638武汉大学学报信息科学版2005年7月
按照上述划分易知,需要参与后续简化计算的点包括可见点和部分可见点,它们构成了活动结点集合。精确计算出活动结点集,需要逐点判断其与视见体的关系,计算量颇大。本文研究了一种快速查找算法,无需遍历整个原始点集或三角形集,可快速完成活动结点的查找操作。步骤如下:∀将视见体投影到xy平面上得#T;∃在原始网格中找出#T三边切割的所有三角形,并将它们的属性赋为边界三角形;%利用网格散点三角形的索引机制,快速定位包含#T的重心的三角形#S;&以#S为初始三角形,根据其记录的邻接三角形信息迅速向外扩展,直到边界三角形。如此,可查找出位于视见体内及其与视见体边界相交的所有三角形集合,本文称之为活动三角形集合,其中所有三角形的顶点构成了活动结点集合P。
3.1.2背面剔除
活动三角形集合中的三角形相当一部分对于观察者来说是不可见的,因为被其他的三角形面遮挡住了,应以尽可能粗的分辨率显示。对于顶点v∋P,若它关联的法向锥是背向的,则对顶点v进行删除。如图4所示,给出标准化点法向量nv,法向锥半角,视点e到v的矢量ev以及nv与ev的夹角,如果
<90-cos>cos(90-)cos>sin成立,则法向锥是背离观察者的,该点应删除。式中,cos=nv(ev)|ev|。
根据上述算法原理,用VC++6.0和OpenGL开发了地形实时动态显示系统,用户可以在该系统中通过改变视点、视线方向、视见体以及屏幕投
影误差来观察模型,系统还提供了记录观察路径
图4背离面简化准则Fig.4CriteriaofCullface
图5屏幕投影误差准则
Fig.5CriteriaofScreenspaceProjection
ErrorThreshold
间。为节省时间,通过cos(-)(cos+sin,对于(90),∗,则投影面积在式(1)范围内:
(cos+sin)!rd|ev|
2
2
2
(1)
对于<,令cos+sin=1,若式(1)的计算值小
于给定的阈值 时,则对应的结点v可以删除。3.2基于曲率的简化网格的生成
对于经可见性预处理后的网格,本文采用了基于曲率的局部删除顶点简化算法。步骤如下:∀针对网格中的每一个顶点计算曲率;∃根据曲率大小对所有顶点从小到大排序,存储在一个顶点队列中;%在顶点队列中,删除一个曲率最小的顶点,并对删除后留下的 空洞!重新三角化;&对该点的星形邻域上的各顶点重新计算曲率,并根据新的计算结果调整其在顶点队列中的排序,以保证误差值的递增排序;+返回步骤%,直到满足给定的三角形数量。
4应用
和按指定路径漫游的功能。图6为某实际地形漫游时截取的画面,原始网格共有225416个三角形,经本文算法简化后,在普通微机上可以实现交互式的动态实时漫游。实验环境为P42.6G微机,256MB内存,GeForce128M显示卡,80G硬盘,WindowsXP操作系统。
表1列出了分别采用三种方法(不使用简化、未加可见性预处理的点删除简化和加可见性预处理的点删除简化)沿固定路径漫游后对绘制帧速率的统计数据。可以看出,如果不对模型进行预处理简化,而直接使用点删除简化算法,那么绘制速度的提高是有限的。加上预处理简化后,绘制速度大大提高了,完全可以满足实时绘制的需要,并且绘制帧速率基本于场景的复杂度。
3.1.3屏幕投影误差
当三角形面离视点很远时,在屏幕内的投影区域很小。为提高渲染效率,网格简化可以移去相对于给定阈值 在屏幕上足够小的三角形,这样处理对视觉效果没有影响。可以利用结点v的包围球半径r、法向锥半角和顶点标准法向量nv来计算影响域在屏幕上的可见区域,其中,r为与顶点v关联的一系列边中的最大边长,如图5所示,包围球投影到距视点为d的视平面上的投影面积在cos(-)!rd|ev|2
2
2
范围内。
由该式计算投影面积要计算的确切值,耗费时
第30卷第7期蒲浩等:基于可见性预处理的地形模型视相关简化算法
639
2TurkG.RetilingSurface.ComputerGraphics,1992,26(2):55~
3HoppeH,DeRoseT.MeshOptimization.ComputerGraphics,1993,27:19~
4GarlandM,HeckbertPS.SurfaceSimplificationUsingQuadricErrorMetrics.1997,31:209~216
5HoppeH.ViewdependentRefinementofProgressive
图6地形实时动态显示
Fig.6RealtimeRenderingofaLargeScale
ofTerrainScene表1绘制帧速率
Tab.1FrameVelocityofRendering
三角形
总数/个9750318805924151774737
不使用简化未使用预处使用预处理简
漫游帧
的帧速率理简化的帧化的帧速率
数/帧
/帧s-1速率/帧s-1/帧s-1
6720.838.8122.42428313162
0.360.080.02
5.633.411.03
21.1421.1120.92
ComputerGraphics,
Meshes.ComputerGraphics,1997,31:1~1986张建保,杨涛,孙济舟.基于顶点删除算法的连续多分辨率模型显示.中国图像图形学报,1999,4(5):395~399
7周昆,潘志庚,石教英.基于三角形折叠的网格简化算法.计算机学报,1998,21(6):506~513
8蒲浩,宋占峰,詹振炎.基于Delaunay三角网的路线三维建模方法研究.铁道学报,2001,23(4):81~86
9WatsonDF.ComputingthendimensionalDelaunayTesselationwithApplicationtoVoronoiPolycopes.CoputerJournal,1981(24):167~172
第一作者简介:蒲浩,博士后,副教授。研究方向为土木工程
参考文献
1SchroederWJ.DecimationofTriangleMeshes.Com
puterGraphics,1992,26(2):65~70
CAD及可视化设计。Email:digiroad@163.com
ViewdependentSimplificationAlgorithmofTerrainModel
BasedonVisibilityPreprocesssing
PUHao1SONGZhanfeng1
(1SchoolofCivilandArchitecturalEngineering,CentralSouthUniversity,22ShaoshanSouthRoad,Changsha410004,China)
Abstract:Thispaperputsforwardavertexremovalsimplificationalgorithmbasedonvisibilitypreprocessing.Todealwithhugeamountsofterraindataset,Thespaceindexsystemwithhighefficiencyiscreatedandappliedtoacceleratethevisibilitypreprocessingincludingviewfrustumculling,backfacecullingandhidingfaceculling.Themodelwhichhadbeenpreprocessedissimplifiedfurtherbythevertexremovalalgorithmbasedoncurvature.Theexperimentsshowthatthevisibilitypreprocesscanacceleratetherenderingtoagreatextentandtherenderingvelocityisindependentofthemodelcomplexity.
Keywords:modelsimplification;viewdependentsimplification;levelofdetail;interactive
Aboutthefirstauthor:PUHao,postdoctoralfellow,associateprofessor.Hismajorresearchorientationiscomputeraidedcivilengineeringdesignanditsvisualization.Email:digiroad@163.com