大规模场景TIN模型.pdf
《大规模场景TIN模型.pdf》由会员分享,可在线阅读,更多相关《大规模场景TIN模型.pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、!文章编号:#$%&()(#*)#%#$%#+大规模场景中多分辨率地形,-.模型杜 莹,武玉国,王晓明(信息工程大学 测绘学院,河南 郑州!&*#*)摘要:为了实现大规模场景的多分辨率显示,文中利用/01 细节分层思想提出了一种地形,-.模型。重点解决不同分辨率,-.模型间的连续过渡问题,以及分块,-.模型的创建问题,包括,-.构网时的数据结构设计和算法优化。关!键!词:/01;,-.;多分辨率;12345647 三角网中图分类号:89+!文献标识码::!与;*。!#$%模型的基本算法文中研究,-.地形模型,是出于研究全球虚拟地形环境的需要,因此模型的数据结构和算法必须符合全球分层分块的特点。
2、作者选择“逐点插入法”作为基本算法,对该算法的核心部分做了优化,并对多分辨率,-.模型接边问题提出了有效的解决办法。!构建,-.是在单个地形块内进行,,-.的凸壳为矩形,简化了,-.的构网过程。为了解决接边裂缝问题和构造混合地形模型(即同时使用;=和,-.模型)的需要,边界点与;=地形模型的边界点重合,且边界不简化(如图 所示)。图!边界保持不简化,便于接边构建 12345647 三角网基本步骤如下所述?。!)构建初始三角网。由于凸壳即为边界矩形的&个角点,因此初始三角网由对角线分开的两个三角形构成。)插入边界点。依次插入边界点,为了保证点的顺序为逆时针且符合地理坐标系方向(纵坐标正向朝上),
3、设置加入顺序为!(从左到右)、(从下到上)、#(从右到左)、$(从上到下),如图 所示;并用局部优化函数($%&)进行局部优化。+)插入内部点。判断三角形数组中的每个三角形,如该三角形需要继续插入点,执行步骤(&),否则,转向下一个三角形,直至判断所有三角形。&)插入最大距离点。获取该三角形内到该三角形所在平面距离最大的点,如果该点到平面的距离大于指定的误差阈值,则向该三角形中插入该点并进行局部优化,否则将该三角形记为不需要继续插入点。图 (4)为顺次插入边界点;图 ()为插入第一个边界点,并进行$%&;图 (A)为插入所有边界点后的构网情况;图 (B)为插入内部点,并进行$%&。图!,-.地
4、形模型构建步骤$%模型的算法优化逐点插入法构建,-.地形模型,需要反复判断待插入点在哪个三角形中,会耗费大量的时间。收稿日期:#&%#?;修回日期:#*%#%!基金资助:国家自然科学基金资助项目(+(#$#)作者简介:杜 莹($(C),女,湖北枣阳人,四系讲师,博士生,研究方向为+维场景建模与可视化。第 卷第 期#*年#?月测 绘 学 院 学 报DE5F643 EG-6HIJI5I2 EG 5FK27J6L 46B M4NNJ6LOE3P .EP D56P#*对此借助网格索引做优化,基本思路分以下!步。)为#$%模型区域构建辅助网格。图&所示浅灰色矩形网格将矩形分成!块(!值根据数据量
5、确定,数据量越大,!值越大)。图&为#$%模型区域构建辅助网络()计算每个三角形所在辅助网格。在插入每个三角形时,获取该三角形最小外接矩形,并获取该外接矩形内包含的辅助网格,判断每个辅助网格与该三角形的位置关系,如二者相交,则向该辅助网格中添加该三角形的索引号。图!7#$%所在的辅助网格为&$&、&$!、&$(、&$&(、&$!(、&$&、&$!&,即图!())中的深灰色部分。图!计算三角形所在的辅助网格&)计算插入点 所在的辅助网格(如图*所示)。计算插入点在哪个辅助网格中,记下该辅助网格的行号(和列号)。图*中,插入点 所在的辅助网格为&$&(,即图中的晕线填充部分。*!)借助辅助网格判断
6、插入点所在的三角形(如图+所示)。获取辅助网格数组中存储的所有三角形(即与该辅助网格相交的所有三角形,如图+中的 7#$%,7#$+,7$%,),根据点 与这些三角形的位置关系,最终计算出点 所在的三角形(如图+中,插入点 位于 7#$%内)。*图*计算插入点所在网格 图+网格判断插入点所在三角形*这样,只需要判断插入点与有限个三角形(如图+中的 7#$%、7#$+、7$%,)的位置关系,而不需要遍历三角形数组中的所有三角形,从而大大缩短了判断时间。!#$%模型的接边算法由于文中使用的,-.技术是/0,-.,所以必定会存在同一帧场景中的低级块和高级块相邻的情况(如图),而高级块的边界点密度通常
7、大于低级块的边界点密度,从而引发#$%接边裂缝问题。文中针对金字塔#$%地形模型的特点,提出了一种新的裂缝消除算法。算法的基本思想是:边界点个数满足(-.(-2&);在低级块的边界上等间隔插入备用点(12345 6789:),实时渲染时,判断是否需要启用各条边上的备用点,以消除裂缝。先介绍几个基本概念,如图;所示。图;接边算法中的顶点和三角形分类 边界点(5 6789:)为所有位于#$%凸壳上的点(如图;中的点,、,(、,&)。边界点的集合记为,。内部点($9954 6789:)为除边界点以外所有参与#$%构网的点(如图;中的 点/、/(、/&)。内部点的集合记为/。#$%构网点集合?等于,和
8、/的并集,即:0 1,1/,且,8/1!。备用点(12345 6789:)为每条边界上两相邻边界点的中点(如图;中的点 2、2(、2&)。边界三角形(5#48395)为#$%构网中至少有两个点是边界点的三角形,边界三角形的集合记 为,3(如图;中的 7,(/、7,(,&/)。角落三角形(A74954#48395)为#$%构网中&个点全为边界点,有一个角为直角的三角形(如图;中的 7,!,*,+)所述。算法实现过程如下:)插入备用点。#$%构网结束后,依次插入备用点,插入的顺序与#$%边界点的插入顺序一致,即仍然保持 4(从左到右)、5(从下到上)、$(从右到左)、6(从上到下)的顺序,如图B
9、所示。图 B插入备用点*()分割角落三角形。在角落三角形的斜边上强行插入一个点(如图C(3)的点/),从而分割成!个新的三角形(如图 C())中的 7,/2、7,(/2、7,(/2(、7,&/2(),并将与该角落三角形D(测 绘 学 院 学 报(DD*年共斜边的三角形(如图!()中的7!#!$%)分割成两个新的三角形(如图!()中 7!#%和7!$#%),以避免插入备用点后出现备用三角形交叉(如图!()中 7!#!$#和 7!#!$#%)。图!&分割角落三角形&$)分割边界三角形。用备用点将所有边界三角形一分为二,并追加到()构网末尾,如图#*所示。图#*&分割边界三角形&经过上述处理后,不同
10、分辨率()地形模型的接边就变得非常简单了,只需要判断是否接边即可。如图#所示,左边为低级块的()地形模型,右边为高级块的()地形模型,实时渲染时只需要启用低级块的备用点即实现不同分辨率地形块的拼接,从而达到解决裂缝问题的目的。图#&经过接边处理后的()拼接图#%&经过接边处理后的()拼接&图#%是使用上述()接边算法实现的$维地形场景,从图中可以看出,靠近视点的区域使用+,-级别高的()地形模型(即高级块),远离视点的区域使用+,-级别低的()地形模型(即低级块),在需要拼接的边界上启用了低级块的备用点。表#是读取()地形模型数据所耗时间的实验结果。表中数据的实验环境为:#./012 3/43
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大规模 场景 TIN 模型
限制150内