元宇宙大数据人工智能三维电子沙盘数字沙盘元宇宙大数据人工智能无人机倾斜摄影三维全景建模第18课
元宇宙大数据人工智能三维电子沙盘数字沙盘元宇宙大数据人工智能无人机倾斜摄影三维全景建模第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
元宇宙大数据人工智能三维电子沙盘数字沙盘元宇宙大数据人工智能无人机倾斜摄影三维全景建模第18课相关推荐
- 三维电子沙盘数字沙盘元宇宙大数据人工智能无人机倾斜摄影三维全景建模第17课
三维电子沙盘数字沙盘元宇宙大数据人工智能无人机倾斜摄影三维全景建模第17课 在SDK中提供底层的模型访问接口,利用好了可以实现模型的移动动画.材质替换动画等等.下面介绍一下具体的操作方法: 这部 分需 ...
- M3DGIS全息裸眼三维电子沙盘数字沙盘大数据系统开发教程视频第6课
M3DGIS全息裸眼三维电子沙盘数字沙盘大数据系统开发教程视频第6课 三维电子沙盘数字沙盘开发教程第6课 gis3d.MapGo(103, 30, 19); //第一次跳转会有点慢,主要是获取数据,如 ...
- 三维电子沙盘数字沙盘开发教程第7课
三维电子沙盘数字沙盘大数据人工智能开发教程第7课 设置system.ini 如下内容 Server=122.112.229.220 user=GisTest Password=chinamtouch. ...
- 三维电子沙盘数字沙盘开发教程第3课
三维电子沙盘数字沙盘开发教程第3课 下面介绍矢量图层的控制显示:上代码 foreach(string key in gis3d.SetFile.Biao.Keys)// gis3d.SetFile.B ...
- M3DGIS三维电子沙盘数字沙盘可视化交互地理信息系统开发教程第4课
M3DGIS三维电子沙盘数字沙盘可视化交互地理信息系统开发教程第4课 虚拟三维数字沙盘开发教程第4课 下面介绍怎样在地球上增加自己的FrameworkElement,因为FrameworkElemen ...
- 公安三维电子沙盘 数字沙盘方案书
公安三维电子沙盘方案书 根据公安业务管理需求,以"指挥扁平化.管理精细化.勤务可视化.情指一体化.服务民本化"为设计思想,整合和利用三台合一.有无线通信.短信平台.视频监控.治安卡 ...
- 三维电子沙盘数字沙盘可视化大数据人工智能教程MR VR AR M3D GIS第56课
设置system.ini 如下内容 Server=122.112.229.220 user=GisTest Password=chinamtouch.com 该数据库中只提供 成都市火车南站附近的数据 ...
- M3DGIS三维电子沙盘数字沙盘大数据人工智能模拟对抗推演系统开发教程视频第一课
M3DGIS开发培训视频第一课https://live.csdn.net/v/168403 该数据库中只提供 成都市火车南站附近的数据请注意,104.0648,30.61658 而且该公用服务器带宽不 ...
- 三维电子沙盘 数字沙盘GIS开发教程
在SDK中提供了一套动画系统(和FLASH的动画系统相同),新的游戏模式(像打红警一样)还在开发中,敬请期待,下面简单介绍一下动画系统,整个动画系统只需要调用 https://blog.csdn.ne ...
最新文章
- 10.11 安装pod
- 5 月份最热的 GitHub 项目
- DLL中资源切换的两种方法
- c语言如何输出字符问号,C语言入门5-键盘的输入和屏幕输出
- linux中安装apk软件,Linux下安装软件的几种方式
- 用友漏洞php,用友NC任意文件上传漏洞复现
- 国内顶尖团队的开源地址
- python星号怎么输入_如何将密码显示为星号
- 数显之家快讯:【SHIO世硕心语】智慧城市时代下的智慧标识设计初探
- 单车组装的思路(本文尽量针对2K以内的山地车)
- C语言编程之用ellipse画椭圆
- Django+Vue开发生鲜电商平台之1.项目介绍
- 时间序列的平稳性与差分法
- Windows批处理文件*.bat
- MSSQL数据导入导出Excel的相关代码
- 农夫住房抵押贷款叫醒农村沉睡资本
- OS轮转调度算法RR的C++实现
- 迄今最全的国内引进的凯迪克获奖绘本书单172本(1938年-2016年)
- 西南石油大学计算机考研人数,8所高校报考人数汇总,21考研这是要妥妥突破400万人的节奏?...
- linux备份还原命令
热门文章
- 安装插件失败,getaddrinfo ENOENT raw.githubusercontent.com 报错
- 30个设计精美的Email Templates[邮件模版] (建议收藏)
- 【职场答辩】程序员如何写职场答辩PPT?
- HBuilder X不能运行到内置终端
- android usb 检测工具,Android:如何检测已连接的USB设备?
- 眼睛看不到的世界,用心去看——王培双
- 微信小程序上传组件(可同时长传图片+视频)
- mc服务器常用指令_我的世界服务器常用指令和OP指令
- python调用mysql数据库sql语句过长有问题吗_Python 连接Mysql数据库执行sql语句
- javascript全国省市级连