查看: 2449|回复: 1

osgdem 分块规则

[复制链接]

该用户从未签到

发表于 2009-2-23 17:08:08 | 显示全部楼层 |阅读模式
version:osg 2.2 vpb 0.9.5

osgdem分块策略:

1  首先假定resolutionSensitivityScale=0.9;

2  计算纹理和高程图的最大分辨率computeMaximumSourceResolution;

   _imagery_maxSourceResolutionX,_imagery_maxSourceResolutionY;//纹理

   _terrain_maxSourceResolutionX,_terrain_maxSourceResolutionY;//高程

3 计算每块纹理和高程图的分辨率computeImageResolution

   texture_dx,texture_dy;//纹理

   dem_dx,dem_dy;//高程

4  分块
   
    1)基于分辨率的分块法则:
    if (tile->computeImageResolution(layerNum,texture_numColumns,texture_numRows,texture_dx,texture_dy))
        {
             if (texture_dx*resolutionSensitivityScale>tile->_imagery[layerNum]._imagery_maxSourceResolutionX) needToDivideX = true;
             if (texture_dy*resolutionSensitivityScale>tile->_imagery[layerNum]._imagery_maxSourceResolutionY) needToDivideY = true;
        }
    if (tile->computeTerrainResolution(dem_numColumns,dem_numRows,dem_dx,dem_dy))
       {
            if (dem_dx*resolutionSensitivityScale>tile->_imagery[layerNum]._terrain_maxSourceResolutionX) needToDivideX = true;
            if (dem_dy*resolutionSensitivityScale>tile->_imagery[layerNum]._terrain_maxSourceResolutionY) needToDivideY = true;
        }
    2)在满足needToDivideX = true,needToDivideY = true的条件下,块本身几何形状决定的分块法则
     if (needToDivideX && needToDivideY)
        {
           float aspectRatio = (extents.yMax()- extents.yMin())/(extents.xMax()- extents.xMin());
            if (aspectRatio>1.414) needToDivideX = false;
            else if (aspectRatio<.707) needToDivideY = false;
        }
5 划分可能结果:一分为四或者一分为二。 不当之处,敬请指正。

该用户从未签到

发表于 2009-11-19 16:36:30 | 显示全部楼层
沙发 好贴竟然没人顶
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表