3DMax模型输入到WPF中运行
其实看看笔者文章之前,可以在网上搜索下将3Dmax模型输入到WPF的办法,大部分结果都是这篇文章。这篇文章呢?有点麻烦,就是我们3Dmax模型转换到Blend的时候只有模型没有材质及贴图,需要在Blend3中自己添加材质贴图。模型简单在Blend添加是OK的,复杂点的话,那就麻烦了,笔者想还不直接用Blend建模型呢!还有一点笔者觉得用按钮控制飞机太麻烦了,可以用鼠标控制飞机啊。所以本篇主要是围绕这两点而写的。
本篇的例子下载(开发环境:3ds Max 9.0,Microsoft Expression Blend 3,VS 2010)
本文3DMax模型直接引用WXWinter,但是在3Dmax中我直接给飞机提供了材质贴图(文件:helicopter.max)。打开3Dmax模型,点击文件==>导出==>保存类型(选择.Obj).然后按下图设置好,点击OK即可。
得到了两个文件(.obj和.mtl)
然后得到打开Microsoft Expression Blend 3,创建一个新的WPF程序,并在程序中,选择project==>Add Existion Item(选中上面得到的两个文件以及飞机的材质贴图a.jpg和b.jpg),将它们都加入到工程中来,然后在工程中双击.obj文件,飞机就会自动显示在MainWindow窗口,这里可以调整模型的大小等等。那么这样就成功生成了将3Dmax模型数据转换为了Xaml格式的数据了。
在用vs打开刚才Blend创建的工程,由于笔者用的是vs2010,所以会有代码转换的问题。转换完代码后双击MainWindow.Xaml文件,那么就可以看到3Dmax飞机模型成功输入到了WPF中了。
相信下面的就简单了再Gird中添加鼠标事件(MouseWheel,MouseLeftButtonDown,MouseLeftButtonUp等等)。然后就是对3D物体的具体操作,Viewport3D里面包含了3D的内容,Viewport3D.Camera这个是就像个摄像机将3D的物体以2D形式展现出来,就像大家看电视,拍的是真3维,其实展示就是一个2D平面。这个属性很重要,它的Position属性,LookDirection属性,UpDirection属性直接影响到观看到的3D内容的呈现。这里可以滚动鼠标中间的按钮触发MouseWheel事件,变动摄像机位置,朝LookDirection方向前进,这样给人感觉物体越来越大或者越来越小。
本例对飞机的操作,滚动滑轮式前进或者后退,按住左键并移动鼠标是向左走,向右走,按住右键移动鼠标是旋转飞机。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述