关闭

三维场景中模型纹理按距离压缩方法

标签: ArcGISesri三维
895人阅读 评论(0) 收藏 举报
分类:

三维场景中模型纹理按距离压缩方法,在ArcEngine中的接口为

 

pGlobeLayerProperties5.SetDistanceThresholdsExt(lodShift0, maxDistance0, lodShift1, maxDistance1, lodShift2); 

 

具体的应用方式为

 

           //获取要进行纹理压缩控制的图层,getLayerFromScene为遍历GlobeControl中所有图层的函数

            ILayer layer = Common.GlobeUtil.getLayerFromScene(_globeCtrl3D.GlobeDisplay.Scene, "Buildings");

            IGlobeDisplayLayers2 pGlobeDisplayLayers2 = _globeCtrl3D.GlobeDisplay as IGlobeDisplayLayers2;

            IGlobeLayerProperties5 pGlobeLayerProperties5 = pGlobeDisplayLayers2.FindGlobeProperties(layer) as IGlobeLayerProperties5;

            int lodShift0 = 0;

            double maxDistance0 = 30;

            int lodShift1 = 1;

            double maxDistance1 = 50;

            int lodShift2 = 0;

            //double maxDistance2 = 0;

           //获取压缩距离

            pGlobeLayerProperties5.GetDistanceThresholdsExt(out lodShift0, out maxDistance0, out lodShift1, out maxDistance1, out lodShift2);

            lodShift0 = 0;

            maxDistance0 = (double)numericUpDown1.Value;

            lodShift1 = 1;

            maxDistance1 = (double)numericUpDown2.Value;

            lodShift2 = 2;

            //double maxDistance2 = 0;

           //设置压缩距离

            pGlobeLayerProperties5.SetDistanceThresholdsExt(lodShift0, maxDistance0, lodShift1, maxDistance1, lodShift2);

            pGlobeLayerProperties5.ApplyDisplayProperties(layer);

            _globeCtrl3D.GlobeDisplay.RefreshViewers();

 

 

可以设置为2级,即第一级距离内的为精模型,第一级和第二级之间的为经过纹理压缩的模型,第三极之外为白模型

 

如下图

30-50

 

 

30-80

 

60-80

 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:419120次
    • 积分:7013
    • 等级:
    • 排名:第3477名
    • 原创:292篇
    • 转载:3篇
    • 译文:1篇
    • 评论:36条
    最新评论