3DMX电子沙盘和虚拟互动沙盘教程第32课 如何导入和呈现3DMAX模型
上一节我们实现了模型的移动控制。这次我们来实现模型的材质控制,首先我们找一个模型。在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模型相关推荐
- 指挥电子沙盘虚拟数字沙盘教程第29课
指挥电子沙盘虚拟数字沙盘教程第29课 在SDK中为了方便三方数据的接入,引入了一个用户层接口.主要是完成三方数据的接入,含动态数据(如GPS),用户可自行控制UI及UI的交互,可实现如滴滴打车的车辆控 ...
- 三维数字虚拟GIS沙盘教程第30课:电子地图数据来源分析
现在不管什么GIS平台首先要解决的就是数据来源问题,因为没有数据的GIS就是一个空壳,下面我就目前一些主流的数据获取 方式了解做如下之我见(主要针对互联网上的一些卫星图,和一些矢量瓦片图) https ...
- 三维数字沙盘电子沙盘人工智能地理信息系统开发教程第14课
三维数字沙盘电子沙盘人工智能地理信息系统开发教程第14课 很久没有写了,主要前段时间在针对怎么显示高精度的 倾斜数据而努力,现在终于实现了效果不错.以前的版本显示倾斜数据控制不太好.最近SDK也改动了 ...
- 交互式电子沙盘GIS 虚拟数字沙盘M3D GIS教程
上一篇实现了一个基本球,在基本球中已经实现了类似google earth的操作,即鼠标单键拖动,滚轮放大,鼠标中键按下左右旋转.上下拉伸. 多点触摸操作:单指拖动,双指旋转和缩放,5指上下拉伸.左右旋 ...
- M3DGIS三维数字沙盘电子沙盘地理信息系统开发教程第10课
三维数字沙盘电子沙盘M3DGIS地理信息系统开发教程第10课 设置system.ini 如下内容 Server=122.112.229.220 user=GisTest Password=chinam ...
- 虚拟现实MR VR AR三维数字沙盘电子沙盘开发教程第2课
虚拟现实MR VR AR三维数字沙盘电子沙盘大数据人工智能开发教程第2课 上一篇实现了一个基本球,在基本球中已经实现了类似google earth的操作,即鼠标单键拖动,滚轮放大,鼠标中键按下左右旋转 ...
- 数字沙盘虚拟电子沙盘开发教程第9课
多点触摸三维电子沙盘可视化交互地理信息系统(M3D GIS)(平衡+极简+实用)TREND MTOUCH 3D GIS(English)是成都趋势电子有限责任公司秉承贰拾多载(2001)工匠精神自主知 ...
- 三维电子沙盘虚拟数字沙盘开发教程第9课
三维电子沙盘虚拟数字沙盘开发教程第9课 查询面板调用: private void Button_Click_11(object sender, RoutedEventArgs e) { ...
- 交互电子沙盘虚拟数字沙盘开发教程第2课
交互电子沙盘虚拟数字沙盘开发教程第2课 请大家观看学习! 交互电子沙盘虚拟数字沙盘开发教程第2课 三维M3D GIS电子沙盘虚拟数字沙盘培训教程第2课
最新文章
- excel随机数_如何使用excel高效背GRE单词?
- C++开发中类的定制
- jQuery 设计和自定义一个带展开动画效果的导航栏
- 广告拦截之easylist和easylistchina订阅地址
- linux 消息对lie_Linux系统编程—消息队列
- 智能DBA呼声高、仅20%开发者懂操作系统、芯片人才匮乏,揭晓中国基础软件开发者现状
- 记一次复杂的正则匹配——匹配但不包含
- java走梅花桩_PGIS周中赛:梅花桩4队混战 PERO17杀饮恨 STK拿下本局
- VMware中创建虚拟机并安装Linux操作系统教程
- Multisim基础 调出面包板
- Word生成目录后,前面还有摘要,怎么样让页码从正文第一页开始
- Linuxnbsp;下摄像头驱动支持情况(…
- 吴恩达机器学习ex2 Logistic Regression (python)
- 火爆的人工智能项目都在这里了|Gitee项目推荐
- 变强——GitHub 热点速览 Vol.46
- excel高级筛选怎么用_EXCEL/WPS高级筛选使用
- 开发旺旺群发软件,难点及重要技术点分析(一)
- python 文件时间戳_在Python中每小时将时间戳记写入文件
- 【3】FSL MRI 脑部图像功能与使用
- 哪个浏览器支持php,浏览器内核有哪些