zoukankan      html  css  js  c++  java
  • 3dmax导出到blend或者vs中

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

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

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

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

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

    首先是xmal代码的Viewport3D。

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

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

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

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

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

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

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

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

  • 相关阅读:
    hdu 1348【凸包模板】
    hdu 3007【最小圆覆盖-随机增量法模板】
    poj 2187【旋转卡壳模板】
    bzoj 2618【半平面交模板】
    hdu1115【多边形求重心模板】
    bzoj 1006: [HNOI2008]神奇的国度【弦图+LesBFS】
    bzoj 3456: 城市规划【NTT+多项式求逆】
    bzoj 2194: 快速傅立叶之二【NTT】
    bzoj 4555: [Tjoi2016&Heoi2016]求和【NTT】
    bzoj 4842: [Neerc2016]Delight for a Cat【最小费用最大流】
  • 原文地址:https://www.cnblogs.com/lelehellow/p/6145632.html
Copyright © 2011-2022 走看看