使用3dmax将模型导成obj格式的时候,可以导出材质或者不导出。

1、如果不导出,则按下图不勾选导出材质和创建材质库选项。这样生成的obj是可以直接再blend或者vs中打开的。

2、如果导出,不仅需要勾选导出材质和创建材质库,还需要点一下材质导出,再跳出的对话框中选择使用材质路径,不然导出的模型是无法在blend或者vs中打开的。

3、vs读取3d模型的类,这个类是网上找的别人的,并且只能读取obj格式的,优点是可以直接读取obj并加载到xmal中。缺点是只有调用这个类才能才能加载到界面中,不能在程序运行前就加载模型,无法对模型进行交互式编程。

下面是这个这个类的引用:

首先是xmal代码的Viewport3D。

         <Viewport3D x:Name="vp" Margin="49.2,23.8,35.8,27.8">
<Viewport3D.Camera>
<PerspectiveCamera FieldOfView="45" FarPlaneDistance="10" LookDirection="0,0,-3.4142135623731" NearPlaneDistance="0.1" Position="0,0,3.4142135623731" UpDirection="0,1,0"/>
</Viewport3D.Camera>
</Viewport3D>

下面是c#代码读取obj并加载到Viewport3D中。这里的m实际是ModelVisual3D类型。

            Model3DGroup myModel3DGroup = new Model3DGroup();
DirectionalLight myDirectionalLight = new DirectionalLight();
myDirectionalLight.Color = Colors.White;
myDirectionalLight.Direction = new Vector3D(-0.61, -0.5, -0.61);
myModel3DGroup.Children.Add(myDirectionalLight);
var m = wfl.LoadObjFile(@"D:\Documents\3dsMax\export\直升机.obj");//ModelVisual3D类型实例直接通过Viewport3D的Add方法添加。
8       m.Content = myModel3DGroup;
      vp.Children.Add(m);

这段代码的逻辑图如下图:

这是那个读取obj模型的类的入口

这个类的代码,我上传到csdn了,以下是地址:

http://download.csdn.net/detail/lelehellow/9706591

以上只是个人理解,如果有错误,欢迎指出。

最新文章

  1. CSS的未来
  2. [原创] Gradle DSL method not found: &#39;android()&#39; 和 buildToolsVersion is not specified 的解决办法。
  3. 10个关于Java异常的常见问题
  4. 使用Github Pages创建自己的网站
  5. ​&#39;JAVAC&#39; 不是内部或外部命令解决方法,记得要重启cmd
  6. 译 PrestaShop开发者指南 第二篇 代码规范
  7. 深入理解GCD(一)
  8. C#.Net 如何动态加载与卸载程序集(.dll或者.exe)0-------通过应用程序域AppDomain加载和卸载程序集
  9. 转载:C#实现接口回调
  10. LVS的NAT模式测试
  11. Mybatis源码学习之TypeHandler
  12. Docker介绍及常用操作演示(一)--技术流ken
  13. Windows Zip/CentOS/Radhat系统安装Mysql5.7.x方法
  14. 安装.NET Core遇到的错误
  15. SpringMvc的Controller singleton synchronized
  16. lnmp部署知乎出现403
  17. Hessian 原理分析
  18. HDU-1272 小希的迷宫 (并查集、判断图是否为树)
  19. 《DSP using MATLAB》Problem 3.8
  20. UI5-文档-4.1-Hello World!

热门文章

  1. Android_server提示端口被占用
  2. Beta阶段第七次Scrum Meeting
  3. Linux终端使用代理服务器
  4. Python Day11
  5. 【.net core 跨平台】第一步 在Ubuntu16.04 配置.net core环境
  6. C# 全角和半角转换以及判断的简单代码
  7. 一些关于angularJS的自己学习和开发过程中遇到的问题及解决办法
  8. JavaWeb基础学习体系与学习思路
  9. getchar()(转)
  10. oracle遇到的锁异常,oralce record is locked by another user