上一节我们实现了模型的移动控制。这次我们来实现模型的材质控制,首先我们找一个模型。在3dmax中如下:

可以看到这个模型很复杂。分成了很多层。我们先不管它。导入SDK后如下图:

有贴图还是比较漂亮了。。下面我们用代码,把整个建筑变成蓝色科幻的效果,并把其中某一层用上一节的方法拉出来单独查看:

private void Button_Click(object sender, RoutedEventArgs e)
        {
            
            GisObjectFor3DSFile va = (GisObjectFor3DSFile)IniRead.IniReadWrite.BiaoManage.BiaoList[0];//从当前场景中找到模型标号
            var g1 = va.ModeTree["I:\\3D\\123.3DS"].ChildName[0];
          foreach(var key in ((Model3DGroup)((g1.Value))).Children)
            {
                if (key is Model3DGroup)
                    ChuLi((Model3DGroup)key);
 
                if (key is System.Windows.Media.Media3D.GeometryModel3D)
                {
                    ((GeometryModel3D)key).Material = new DiffuseMaterial(vaBrush);
                    ((GeometryModel3D)key).BackMaterial = new DiffuseMaterial(vaBrush);
                }
            }
 
 
 
            var aa = va.FindNode("D20");//从模型标号中找到二楼
            TranslateTransform3D p1 = new TranslateTransform3D();
            p1.OffsetX = aa.Value.Transform.Value.OffsetX + aa.Value.Bounds.SizeX;
            p1.OffsetY = aa.Value.Transform.Value.OffsetY;
            p1.OffsetZ = aa.Value.Transform.Value.OffsetZ;
            //利用wpf中自带的移动器把它移出来,这里也可以加上动画
 
            aa.Value.Transform = p1;
 
        }
        private ImageBrush vaBrush = new ImageBrush(new BitmapImage(new Uri(@"D:\MTOUCH GIS\res\house\30.png")));
        private void ChuLi(System.Windows.Media.Media3D.Model3DGroup va)
        {
            foreach(var aa in va.Children)
            {
                if(aa is System.Windows.Media.Media3D.GeometryModel3D)
                {
                    ((GeometryModel3D)aa).Material = new DiffuseMaterial(vaBrush);
                    ((GeometryModel3D)aa).BackMaterial= new DiffuseMaterial(vaBrush);
                }
                if (aa is Model3DGroup)
                    ChuLi((Model3DGroup)aa);
            }
        }
最终出来的效果如下图:

顺便说一下,这些材质可以根据用户自己的情况替换成不同的贴图,这个就可以自由发挥了。SDK中提供一个基础面板,可以将这个模型中的某一部分单独开一个窗口来查看,也可以单独标图如下图:

————————————————
版权声明:本文为CSDN博主「种瓜的」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xtgmd168/article/details/104695618

3DMX电子沙盘和虚拟互动沙盘教程第32课 如何导入和呈现3DMAX模型相关推荐

  1. 指挥电子沙盘虚拟数字沙盘教程第29课

    指挥电子沙盘虚拟数字沙盘教程第29课 在SDK中为了方便三方数据的接入,引入了一个用户层接口.主要是完成三方数据的接入,含动态数据(如GPS),用户可自行控制UI及UI的交互,可实现如滴滴打车的车辆控 ...

  2. 三维数字虚拟GIS沙盘教程第30课:电子地图数据来源分析

    现在不管什么GIS平台首先要解决的就是数据来源问题,因为没有数据的GIS就是一个空壳,下面我就目前一些主流的数据获取 方式了解做如下之我见(主要针对互联网上的一些卫星图,和一些矢量瓦片图) https ...

  3. 三维数字沙盘电子沙盘人工智能地理信息系统开发教程第14课

    三维数字沙盘电子沙盘人工智能地理信息系统开发教程第14课 很久没有写了,主要前段时间在针对怎么显示高精度的 倾斜数据而努力,现在终于实现了效果不错.以前的版本显示倾斜数据控制不太好.最近SDK也改动了 ...

  4. 交互式电子沙盘GIS 虚拟数字沙盘M3D GIS教程

    上一篇实现了一个基本球,在基本球中已经实现了类似google earth的操作,即鼠标单键拖动,滚轮放大,鼠标中键按下左右旋转.上下拉伸. 多点触摸操作:单指拖动,双指旋转和缩放,5指上下拉伸.左右旋 ...

  5. M3DGIS三维数字沙盘电子沙盘地理信息系统开发教程第10课

    三维数字沙盘电子沙盘M3DGIS地理信息系统开发教程第10课 设置system.ini 如下内容 Server=122.112.229.220 user=GisTest Password=chinam ...

  6. 虚拟现实MR VR AR三维数字沙盘电子沙盘开发教程第2课

    虚拟现实MR VR AR三维数字沙盘电子沙盘大数据人工智能开发教程第2课 上一篇实现了一个基本球,在基本球中已经实现了类似google earth的操作,即鼠标单键拖动,滚轮放大,鼠标中键按下左右旋转 ...

  7. 数字沙盘虚拟电子沙盘开发教程第9课

    多点触摸三维电子沙盘可视化交互地理信息系统(M3D GIS)(平衡+极简+实用)TREND MTOUCH 3D GIS(English)是成都趋势电子有限责任公司秉承贰拾多载(2001)工匠精神自主知 ...

  8. 三维电子沙盘虚拟数字沙盘开发教程第9课

    三维电子沙盘虚拟数字沙盘开发教程第9课 查询面板调用: private void Button_Click_11(object sender, RoutedEventArgs e)         { ...

  9. 交互电子沙盘虚拟数字沙盘开发教程第2课

    交互电子沙盘虚拟数字沙盘开发教程第2课 请大家观看学习! 交互电子沙盘虚拟数字沙盘开发教程第2课 三维M3D GIS电子沙盘虚拟数字沙盘培训教程第2课

最新文章

  1. excel随机数_如何使用excel高效背GRE单词?
  2. C++开发中类的定制
  3. jQuery 设计和自定义一个带展开动画效果的导航栏
  4. 广告拦截之easylist和easylistchina订阅地址
  5. linux 消息对lie_Linux系统编程—消息队列
  6. 智能DBA呼声高、仅20%开发者懂操作系统、芯片人才匮乏,揭晓中国基础软件开发者现状
  7. 记一次复杂的正则匹配——匹配但不包含
  8. java走梅花桩_PGIS周中赛:梅花桩4队混战 PERO17杀饮恨 STK拿下本局
  9. VMware中创建虚拟机并安装Linux操作系统教程
  10. Multisim基础 调出面包板
  11. Word生成目录后,前面还有摘要,怎么样让页码从正文第一页开始
  12. Linuxnbsp;下摄像头驱动支持情况(…
  13. 吴恩达机器学习ex2 Logistic Regression (python)
  14. 火爆的人工智能项目都在这里了|Gitee项目推荐
  15. 变强——GitHub 热点速览 Vol.46
  16. excel高级筛选怎么用_EXCEL/WPS高级筛选使用
  17. 开发旺旺群发软件,难点及重要技术点分析(一)
  18. python 文件时间戳_在Python中每小时将时间戳记写入文件
  19. 【3】FSL MRI 脑部图像功能与使用
  20. 哪个浏览器支持php,浏览器内核有哪些

热门文章

  1. 利用React 自定义Hooks实现业务逻辑复用实例
  2. Keychron Q1对于初入机械键盘改装领域的玩家,是非常适合的键盘
  3. 机械革命X6ti安装Ubuntu和NVIDIA的显卡驱动
  4. 苹果开发者账号:忘记AppleID的安全提示问题怎么办?
  5. python折半查找算法_跟黄哥学python序列文章之python二分查找算法
  6. Xcode12调试iOS 15.1启动页卡顿解决
  7. 垃圾分类知识竞答活动小程序复盘
  8. 【每日总结】数据在内存中的存储
  9. 魔兽巫妖王服务端架设服务器搭建教程
  10. C语言——判断矩阵维数(sizeof、_msize)