DEM 三维地形处理之二:大地形的拆分与地形金字塔及地形DEM数据的比例采样
大地形的拆分与地形金字塔及地形DEM数据的比例采样
上次再用我的地形时,用到了比例采样,为什么要这样。下面我就谈谈地形数据加载时的一些概念!
加载大数据量的地形DEM数据,进行渲染整个地形体时,由于受计算机处理数据能力的限制,不可能实时渲染超大地形,当地形的数据量达到一定限度是,往往会出现卡顿现象;特别是网络渲染地形,由于受网络传输速的限制,卡顿现象更是会表现的尤为突出。
这就是为什么需要采用算法策略对大地形进行拆分,为什么要有地形金字塔, 如Google earth同样采用了金字塔策略。
地形金字塔:就是一种四叉树或八叉树的方式,进行地形管理。它就是将一个高精度的地形图,根据视距的远近,分成多级地形,每级地形精度依次变高;视距越远,就使用粗精度的地形,视距拉近,就使用高精度的地形。每层的数量为:1—4—18—64。。。
第1层为最上层,也是最粗略的一个整个区域地形图。它只描述粗略的地形,就是我们通常缩放到最小看到的地形图。当随着视距的拉近(放大地形),就会逐级调用下一层级的地形,而释放掉原来的粗略的地形,显示下一级的4个稍高精度的地形;随着放大,视野也会逐渐覆盖不了4个次分地图,当继续拉近,放大只剩这一层级的一张地形时,再放大,就会调用该张地形的下一级4个子节点的更高精度的地形,这样视野中总是最多保留4个地形,而不是很多的地形,没放大一级,就会释放掉原先调用的一级。
这里就展示一下:
第0级:最上级:粗略地形;
第1级:次分一级:精度比第1级增高;
第2级:第1级的次分一级:精度比第二级有增高;
。。。。。。
第N级:。。。逐级精度增高;
比例采样:就是降低精度,忽略掉一定间隔的原始像素数据。它的顺序恰恰与金字塔的级数相反,级数越大,采样比例越小,这样才能保证DEM地形数据的精度是逐级向下增高的;级数越高,精度越高,比例采样越小。
就以3级金字塔为例:
第0级,数量为4的0次方=1
第1级,数量为4的1次方=4
第2级,数量为4的2次方=16
(第3级,数量为4的3次方=64)
0级用红色地形表示,1级用黄色地形表示 2级用绿色地形表示
看看精度:逐级增高,逐级变得更清晰
第0级地形:比例采样X=8,Y=8
第1级地形:比例采样X=4,Y=4
第2级地形:比例采样X=1,Y=1
上面只是说道地形显示,再看看对于大场景中的地形加载和模型的分块调度:
大场景地形加载,就要用到4叉树的分块调度策略。可以通过osg的PageLoad实现对地形的随视距的变化动态调度,同样也可以根据四叉树管理策略,动态调用地形相对应的场景模型。
动态调用效果如下:
牛和沙发,就是根据不同地形动态加载的。