欢迎您访问科普小知识本站旨在为大家提供日常生活中常见的科普小知识,以及科普文章!
您现在的位置是: 首页

基于MultiGen的三维大面积地形场景可视化研究

科普小知识 2023-11-08 13:29:45
...

摘 要 地形三维可视化技术近年来一直是相关领域的热点研究问题。大场景地形的数据量极其庞大,又期望达到一个较好的可视化效果,提出了一种基于multigen的大面积地形三维可视化仿真系统建模、管理和动态调度的实现方法,较好地解决了图像的逼真度和实时性之间的矛盾。最后基于vega实现了大面积地形场景的可视化,满足了系统的真实性和可行性的要求。关键词 大面积地形场景;vega;可视化

1 引言地形三维可视化技术近年来一直是相关领域的热点研究问题。但地形高程数据和纹理数据异常庞大,超出了一般图形系统的实时渲染和内存管理能力。特别是大场景地形的数据量极其庞大,甚至可以说是无限的,又期望达到一个较好的可视化效果,就需对建模和实时显示提出较高的要求。 本文以multigen creator与vega为基础工具,从实现大面积场景地形可视化的基本步骤着手,探讨其中的几个关键技术问题,包括:技术的应用、地面模型数据结构的组织、纹理数据的组织,然后结合vega视景渲染引擎以块为单位进行实时调度和渲染,最后介绍地形三维可视化的试验情况。wWw.11665.com2 大面积三维地形模型的构建 用于地形三维显示的数据按照其功能被划分为地形数据、文化特征数据和纹理数据。构建三维地形模型的一般过程是利用地形数据(通常是数字高程模型dem)建立三维数字地形,贴上纹理数据(通常是数字正摄影像图dom),最后将文化特征数据(dlg中的各种地形特征点和线矢量数据、各类地形要素的矢量数据等)投影到生成的三维地形上。图1展示了构建三维地形模型的一般过程。图1展示了构建三维地形模型的一般过程地形数据分割和建立lod是构建大规模地形漫游系统的有效方法,可大大减少所要处理的数据量。这些技术被广泛使用,但同时出现许多新的问题需要解决,如分割后地形的无缝拼接、纹理坐标的设置等。本节将详尽地阐述我们实现这些技术和解决所出现问题的具体方法。2.1 数据的分割 1)地形数据的分割大规模的地形可能覆盖几百平方公里,三角形的数目可达数亿个,因此不可能将所有的数据一次性地调入内存,而是将整个地形分为许多个子块,根据可视范围和当前的视点参数对子块进行换页操作,保证流畅的显示。原始的整块大地形数据通常是矩形的,可将其划分为大小相同的m行n列,每个子块命名为row。col(i,j分别为该子块所在的行和列),左下角为第0行第0列。对于最右侧和最上侧不满足大小相同要求的块,对无数据区域采取无效值填充。图2 全局坐标系与局部坐标系 为保证在绘制时能将每一个子块放到正确的位置,从而构成一个完整的大地形,在块与块之间不出现裂缝,我们引入了全局坐标系和局部坐标系。以分割前的整块地形的左下角为原点,向右为x轴,向上为y轴,z轴与x、y轴构成右手坐标系(见图2)。计算每个子块的中心并以其为原点构成该子块的局部坐标系,则每个局部坐标系的原点在全局坐标系中的坐标即是该子块的相对偏移量。这样,在绘制时只要重构坐标系就可保证所有地形块的无缝拼接。 2)纹理数据的分割纹理数据对生成地形的真实感起着重要的作用。大范围地形的纹理数据十分庞大,有效的管理与调度便显得非常重要。通用的方法是把巨大的纹理图像按区域分割为多个大小不同或均匀的小块。这种方法简单易行,因而被广泛应用。纹理可分割成与地形块相对应的纹理块,一个地形块可对应一块或多块纹理。multigen creator也支持多块地形对应一块纹理,或者地形块与纹理块间不规则的对应关系,但建立这种对应关系后在系统运行时会造成空间的浪费。因为在可视范围的边缘往往不需要显示一块纹理对应的全部地形块,但整块纹理都要被调入内存。 分割后的纹理要注意其纹理坐标的设置。对于未分割的纹理,dom文件中有其左下角的横坐标xr和纵坐标yc,该坐标与地形是相匹配的。则纹理图像中任意像素的纹理坐标为: x = xr + i* dry = yc + j* dci,j为该像素对于左下角的行数和列数,dr,dc分别为纹理图像在横向和纵向上的分辨率。2.2 建模的方法与原则 构造一个地形模型的多分辨率显示模型,首先要确定建模方法。构建地形模型的原始数据是一组地表高程采样点,以此为输入,经过某种数学算法的处理,得到一个表现地表几何形状的模型.这一过程就是地形的建模过程。当前计算机技术中几何体是以单个三角片构成的格网表面来表现的,与此相适应,地形建模也就是反映地形表面的几何形态的格网的构建过程。传统的建模方法可划分为两大类:规则三角网方法,即grid 方法,或称为方格网方法, 规则三角网方法即tin方法,也称三角网方法。两种方法都具有各自的特点:方格网的建模方法采取的是一种在格网点上对格网周围采样点按照距离远近加权平均的思想.不规则三角网采取的是一种“原汁原味”的方法.它几乎完整地保留原始数据按照某种原则(delaunny)将采样点直接连成网,建立起模型。因此两者在数据结构和算法复杂性等方面都有很大的差异。在选择建模方法时,我们主要考虑了以下三个问题: (1)模型精确度的问题。当模型对精确度要求不高的时候,应更多地使用方格网模型,以充分利用其算法相对简单、模型规范的特点。否则就要应用不规则三角网,其最大的优点是:在采样数据密集、并分布合理的前提之下能够精确地再现地形。三角网解决的问题,其实是要做到“真”,逼近实际地形,但前提是信息量足够多。 (2)多分辨率显示问题。依赖于不同的数据结构,两种建模方法中lod算法截然不同。方格网数据结构规整,lod 问题的解决相对比较容易; 三角网数据结构复杂,lod算法也相对复杂化。 (3)地物的表现方式。地物种类繁多,各有其不同表现方式。对于依赖于地形模型的地物,目前的情况都是用纹理来表示。具体的建模工作主要使用multigen creator。主要有以下几个步骤(如图3所示)。 图3 地景的生成流程图

3大面积场景的管理、调度vega也有大地形管理模块,但是对于如几千平方公里的大面积地景可能会分割成成千上万个*.flt文件,这样处理起来往往会显得力不从心。通常数字高程模型dem数据越精确,卫星遥感数据分辨率越高,场景就越真实。但仿真区域越大,dem数据量也就越大;真实感越高,需要的多边形就越多;纹理越精细,需要的纹理内存就越多。实时处理这些海量的数据就成为了问题的关键。传统的方法往往是牺牲真实感来换取给制速度,难以达到自然环境三维真实再现的目的.于是基于vega的大地形调度思想,提出了大面积地景管理与调度的方法。在对地景进行处理的基础上,系统还需要建立子线程对地景库进行管理和动态调度,使内存中只保留感兴趣区域的*.fst文件。图4 aoi构成简图 在图4中, 表示观察者的视线方向。x-y平面的规则长方形代表地形单元,视线的平截头体与x-y 平面交叉成的四边形就是aoi。aoi 内的地形单元将被调入内存处理。图5 地景的动态调度流程图 地景库的动态调度过程如图5 所示,具体调度过程如下:(1)初始化时,根据观察者的位置,确定感兴趣的区域aoi,映射相应的*.fst 文件。(2)在观察者漫游的过程中,不断地检测感兴趣的区域aoi是否发生变化,如果超过了某个临界值,就表明感兴趣的区域发生了变化。(3)将不再感兴趣区域aoi 内的*.fst 文件取消其映射关系,使其从物理内存中消失。将新出现的在感兴趣区域范围内的*.fst 文件映射到物理内存,而且那些一直在感兴趣区域内的*.fst 文件保留原有映射关系。(4)当新旧*.fst 文件的数据融合后,通知主线程。(5)将观察者的初始位置设置成当前位置,回到步骤(2),直到退出仿真系统为止。为了实现三维场景的实时漫游显示,经过建立三维地面模型,并映射反映地面景观的数字遥感影像然后利用视景驱动引擎实现景观的漫游、任意浏览显示。本文的研究试验采用了多个软件系统。建模和纹理贴图是根据相关的数据结构和模型,在虚拟现实专用建模软件multigen-creator环境下完成的。视景驱动引擎是在vc 6.0环境下结合vega的函数库和opengl函数库完成系统的编程、调试和运行后完成的。视景驱动引擎一方面完成整个场景中数据的分块调用处理,另一方面,是随着视点的改变,实现地形场景的连续播放显示。图6为系统运行时的一个场景截图。图6 系统运行场景4结束语 大范围、不规则三维地形的可视化及其实时显示是一个极富挑战性的课题,尽管前人已做了很多这方面的工作,但真正实用且适合大范围三维地形的可视化及其实时显示的算法还不多。虽然三维地形的范围很大,但在视区范围内的三维地形是有限的,所以基于视相关的算法是大范围三维地形可视化及其实时显示的必由之路,本文提出的基于multigen的大面积地形三维可视化仿真系统建模、管理和动态调度的实现方法的具有规范、搜索快的优点,又能适合随着视点的变化而进行连续、动态的三维地形的实时显示,所以,它们是一种在三维地形可视化及其实时显示中优先考虑的方法。

参考文献:[1] 石教英.虚拟现实基础及实用算法.科学出版社,2002[2] vigna g,kemmerer r.netstat:a network—based intrusion detectionsystem[j].journal of computer security,1999;(7):37-71[3] 肖金城,李英成.大规模地形场景三维实时漫游显示技术研究[j].遥感信息,2002—6[4] 任敏,詹荣开.基于面向对象空间数据库的三维地景可视化研究[j].计算机工程与应用,2002:38(19):209—211