WPF 虽然说算得上一门老技术了,反正在我学的时候(2018年1月)在百度或者谷歌上查,最早甚至能找到10年以前的东西。不过就我现在学习掌握的WPF类库的使用来说,如果避开c#的内存占用不谈的话,它真的是我感觉最方便的GUI技术了。从GDI到DX,从C到C++,反正是一切微软的东西都有办法和它弄到一起。

最近的话,我了解了一些WPF中3D相关的使用,老实说,是真TM的方便,如果只是简单的实现一些模型和相机视角行为的动画,再WPF中可以轻松做到,甚至用ViewPort2DView3D还可以将控件贴图到模型上,实现最基础的3D界面上的交互。

下面就来说如何在WPF中插入3D模型,我是用的是.obj类型的3D模型,从网上查到的教程无非就是两种办法,一是下载相关建模软件的插件,将模型导出为xaml,再者就是将obj直接放入ExpressionBlend中,ExpressionBlend会将其转化为xaml格式。但是不幸的是,以上两个方法年代太过久远,插件那条路是彻底不行了,(我安装了Blender 2.6x)版后,运行时UI总会闪烁,最后就只能下ExpressionBlend来解决,我很好奇为什么这个功能没有加入到VsBlend中,真是日了狗了,VsBlend可以查看obj文件,甚至可以编辑,但是就是没有办法把它嵌入到WPF应用中。当然ExpressionBlend由于.NET版本太老,如果直接运行安装程序会没有办法安装(win10),

但是其实也不用全部安装,应该只需要

这些就行了

ExpressionBlend的界面是这个样子的

感觉像是WPF或者WInform做的,然后在这个里面就可以将obj和mtl文件拖入xaml编辑器中,他就会在后台自动生成xaml的三维描述(直接用3DViewPort包起来的),然后就可以复制到VS中做接下来的动画和交互了。

https://msdn.itellyou.cn/ 这个网址应该能下ExpressionBlend。

其实从某些角度看WPF的资源占用也还是可以接受的,在MFC中如果创建一个DX层,内存占用也会立马上升到20多M,而WPF或者Winform程序的实际内存占用要比在VS中显示的小大概能有20%-30%左右,你可以独立运行编译好的文件看看。也就是说内存其实全被DX消耗了,那么同样使用DX的时候,就没有必要为难自己使用连布局都要自己安排的MFC应用了。虽然只用GDI的话MFC单文档工程只有1M的内存消耗。但在DX前提下,他就没什么优势了。

要在WPF中节约内存的话,就是xaml样式要尽量少而功能多,用一套模板实现自己在程序中要用到的大多数样式,通过依赖项属性将某些需要改变的属性暴露出来,在程序不需要窗口时,可以释放一些没用的类,这样在程序只保留托盘的情况下,内存占用可以缩小很多。

VS2017 WPF 中插入3D模型相关推荐

  1. android 3d模型ppt,PPT已支持3D PPT怎么插入3D模型?

    很多人都知道新版PowerPoint能够插入3D模型,但3D模型又该去哪儿下载呢? 1.站长素材3D模型网 网址://sc.chinaz.com/3D/ 站长素材是一家很不错的3D建模网站,模型数量多 ...

  2. WPF程序加入3D模型

    随着计算机显示性能的提高,很多程序都加入了3D的元素使得程序具有更酷炫的成果.其实,程序中加入三维模型的方法都大同小异,首先应用某种3维建模软件把模型建好,接着贴图渲染,然后导出成某种可直接用于编程的 ...

  3. WPF中的3D Wireframe

    原文:WPF中的3D Wireframe WPF不支持画三维线,但开发人员提供了ScreenSpaceLines3D 类用于实现这个功能.我已经在程序中实现并成功显示3D Wireframe,并能够进 ...

  4. 火云开发课堂 - 《Shader从入门到精通》系列 第十六节:在Shader中对3D模型使用纹理

    <Shader从入门到精通>系列在线课程 优惠链接:http://edu.csdn.net/combo/detail/90 第十一节:在Shader中对3D模型使用纹理 视频地址: htt ...

  5. 火云开发课堂 - 《Shader从入门到精通》系列 第二十节:在Shader中对3D模型进行多纹理混合

    <Shader从入门到精通>系列在线课程 优惠链接:http://edu.csdn.net/combo/detail/90 第二十节:在Shader中对3D模型进行多纹理混合 视频地址:  ...

  6. 在网页中添加3D模型并通过Mysql更新其位置

    前言 本文以一个简单的3D模型为案例,将多个3D模型并排一列(z轴坐标上),通过关联Mysql数据库,实现在网页中即时更新模型位置的功能. 原本自己的项目中是要将机械设备运行的实时位置简易的展示在网页 ...

  7. vue中展示3D模型 -- vue-3d-model

    一.搜集到的网址 3D模型库 three.js WebGL babylonJS ThingJS EverAPI 3D数据可视化库 echarts - 基于Canvas Highcharts -基于SV ...

  8. 在你的网站、浏览器中集成3D模型预览功能,使用开源项目Online3DViewer

    开源项目Online3DViewer # 通过url参数形式预览模型 https://3dviewer.net/#[3D模型URL] Online3DViewer 是一个免费.开源的web解决方案,可 ...

  9. WPF中使用MVVM模型进行数据绑定

    文章目录 前言 一.声明一个类用来实现接口 INotifyPropertyChanged 二.实例化ViewModel对象 1.新建MainViewModel模型类 2.实例化对象 三.在界面设计代码 ...

最新文章

  1. Java项目:医院管理系统(java+javaweb+jdbc+Mysql+lw)
  2. 【C 语言】文件操作 ( 文件加密解密 | 加密解密原理 | 对称加密 | 非对称加密 | 散列函数 )
  3. react监听input框里的值
  4. AnyTrans使用教程:将照片从 Mac 传输到 iPhone 的方法
  5. python xlrd模块
  6. SQL存储过程与自定义函数实例
  7. wxpython 表格粘贴,wxpython在整个应用程序中剪切复制和粘贴
  8. autocad完全应用指南_2020版AutoCAD软件+操作教程+插件合集,限时3天领
  9. 给网页添加跟随你鼠标移动的线条动画
  10. iOS - 蓝牙开发(中心模式)
  11. Virtual关键字的说明
  12. 微信小程序轮播图滚动带动背景图变换及滚动对应图片下标
  13. 等保2.0四级安全要求
  14. std::stack使用总结
  15. 【思维导图怎么画】万彩脑图大师教程 | 添加备注
  16. 程序员如何选择适合自己的企业?
  17. OpenGL超级宝典笔记——光照参数与材料属性
  18. cocos2dX 之音乐与音效
  19. 超越MRT无数倍的MODIS在线拼接AppEERAS
  20. 苹果电脑可以装windows系统吗_Linux系统安装Windows软件? 通过这个工具可以做到...

热门文章

  1. 易语言基础——模块的编写和使用
  2. 易语言获取指定文本模块封装源码
  3. 小米MiFlash报错error:FAILED(remote:updatesparsecrclistfailed)
  4. 内存与主板不兼容导致不定时蓝屏,查看日志
  5. java jdom 读取xml文件_使用Jdom读取XML文件方法
  6. io 流相关知识之available()方法的使用总结
  7. 基于STM32的温度遥测系统
  8. 服务器虚拟化优缺点总结
  9. android 手机找回密码,如何使用android手机找回以前使用的无线密码
  10. Simulink学习——stateflow快速入门之层次结构、互斥及并行