[原][osg][oe]分析一块倾斜摄影瓦片的数据

[原][osg][oe]分析一块倾斜摄影瓦片的数据_第1张图片

首先我们看看原始数据的构成:

第12层:(第一层)

[原][osg][oe]分析一块倾斜摄影瓦片的数据_第2张图片

第23层:(最后一层)

[原][osg][oe]分析一块倾斜摄影瓦片的数据_第3张图片

pagelod下面有N多的pagelod一层包裹一层

通过osgviewer遍历时,会根据距离的远近加载不同层级的“小瓦片”

[原][osg][oe]分析一块倾斜摄影瓦片的数据_第4张图片

可以看出其stateset和geode的数据量不小,而且通过pagelod不断加载卸载,是变化的。这会导致大批量渲染时,加载卡顿(目前只是一小片测试)

[原][osg][oe]分析一块倾斜摄影瓦片的数据_第5张图片

如上图圈出的部分会不断变化。

 

下面开始我们的数据合并测试:

[原][osg][oe]分析一块倾斜摄影瓦片的数据_第6张图片

可以明显的看到GPU爆了,原因有两点:

1.我将几百MB的数据都加进的内存和显存显示

2.我将几百张图片作为纹理列表添加进一个stateset,并通过着色器选择渲染纹理

 

如果仅显示22层和23层:

[原][osg][oe]分析一块倾斜摄影瓦片的数据_第7张图片

 

以下是合并完的23层数据格式:

[原][osg][oe]分析一块倾斜摄影瓦片的数据_第8张图片

 

计划前20层所有瓦片自动合并到1个lod,从第20层开始进行四叉树分级:

20层   4个lod

21层   16个lod

22层 64个lod

23层    放弃

 进行尝试

先用21层做四叉树尝试:

在21层所有顶点和图片资源都和在一个节点的情况下,用osg渲染的帧数是150,见下图

[原][osg][oe]分析一块倾斜摄影瓦片的数据_第9张图片

但是,做了一次四叉树转换,将21的所有顶点和图片资源分成四个节点后,帧数提升到了1558,见下图

 

你可能感兴趣的:([原][osg][oe]分析一块倾斜摄影瓦片的数据)