三维实景沙盘数字模拟沙盘M3DGIS系统开发教程第18课
上一节我们实现了模型的移动控制。这次我们来实现模型的材质控制,首先我们找一个模型。在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
三维实景沙盘数字模拟沙盘M3DGIS系统开发教程第18课相关推荐
- 三维数字沙盘电子沙盘M3DGIS地理信息立体显示系统开发教程第9课
三维数字沙盘电子沙盘M3DGIS地理信息立体显示系统开发教程第9课 虚拟三维数字沙盘开发教程第9课 查询面板调用: private void Button_Click_11(object sender ...
- M3DGIS三维电子沙盘数字沙盘可视化交互地理信息系统开发教程第4课
M3DGIS三维电子沙盘数字沙盘可视化交互地理信息系统开发教程第4课 虚拟三维数字沙盘开发教程第4课 下面介绍怎样在地球上增加自己的FrameworkElement,因为FrameworkElemen ...
- VR三维数字沙盘电子沙盘大数据可视化交互GIS系统开发教程第15课
VR三维数字沙盘电子沙盘大数据可视化交互GIS系统开发教程第15课:现在不管什么GIS平台首先要解决的就是数据来源问题,因为没有数据的GIS就是一个空壳,下面我就目前一些主流的数据获取 方式了解做如下 ...
- 三维数字沙盘电子沙盘人工智能地理信息系统开发教程第14课
三维数字沙盘电子沙盘人工智能地理信息系统开发教程第14课 很久没有写了,主要前段时间在针对怎么显示高精度的 倾斜数据而努力,现在终于实现了效果不错.以前的版本显示倾斜数据控制不太好.最近SDK也改动了 ...
- 电子沙盘数字沙盘虚拟现实可视化系统开发教程第4课
电子沙盘数字沙盘虚拟现实可视化系统开发教程第4课下面介绍怎样在地球上增加自己的FrameworkElement,因为FrameworkElement为WPF的基础UI对象,基本上所有的UI对象都是继承 ...
- M3D GIS三维数字沙盘可视化交互地理信息系统开发教程第44课
M3D GIS三维数字沙盘可视化交互地理信息系统开发教程第44课 设置system.ini 如下内容 Server=122.112.229.220 user=GisTest Password=chin ...
- 电子沙盘数字沙盘大数据可视化GIS系统开发教程第16课
电子沙盘数字沙盘大数据可视化GIS系统开发教程第16课:新增加属性在MTGIS3d控件 public bool ShowFLGrid;//是否显 示方里网格. public bool Atmosphe ...
- M3DGIS三维电子沙盘数字沙盘大数据人工智能模拟对抗推演系统开发教程视频第一课
M3DGIS开发培训视频第一课https://live.csdn.net/v/168403 该数据库中只提供 成都市火车南站附近的数据请注意,104.0648,30.61658 而且该公用服务器带宽不 ...
- 虚拟现实MR VR AR三维数字沙盘电子沙盘开发教程第2课
虚拟现实MR VR AR三维数字沙盘电子沙盘大数据人工智能开发教程第2课 上一篇实现了一个基本球,在基本球中已经实现了类似google earth的操作,即鼠标单键拖动,滚轮放大,鼠标中键按下左右旋转 ...
最新文章
- python turtle画滑稽_使用python的turtle函数绘制一个滑稽表情的方法
- EnforceLearning-主动强化学习
- 六大加密工具让数据传送安然无恙
- python空集合_python空集合
- java中递归删除_浅谈Java中使用递归方法删除文件
- Linux性能调优集合
- 【Softmax】操作对象(以模型最后一层生成的特征图进行softmax后得到的输出结果进行验证)
- 拼音模糊查询+java,Java将汉语转换成拼音,用于字母的模糊查询
- 江西2万余个村庄整治建设 古村落旧貌换新颜
- 萝卜书摘显示服务器正在维护,萝卜书摘
- 简易理解设计模式之:责任链模式——OA中请假流程示例
- 用Python实现腾讯云点播VOD
- [贴装专题] 基于halcon的最小二乘法计算吸嘴或机械轴旋转中心
- 对口升学计算机学校录取分,中职对口升学本科第一批院校录取分数线划定
- 【今日第17个世界肾脏日】肾癌/肾病治疗最新研究进展(2022年3月)
- spoolsv.exe是什么进程、错误及解决办法
- 基于遗传算法的物流企业运输成本优化MATLAB仿真,考虑运输时间约束
- 持续集成Jenkins大法好
- python简易发红包_python+redis简单实现发红包程序
- 软件工程--功能规格说明书