在WPF中显示3D模型

时间:2010-06-27 15:03:29

标签: wpf 3d

我想在WPF应用程序中显示3D模型(该模型是在外部工具(如blender)中准备的)。什么是最佳做法?有没有工具来促进这个?旋转/转换性能怎么样?

4 个答案:

答案 0 :(得分:16)

Zam3d 是一个很好的工具,可以将3D模型转换为Xaml,但看起来Electric Rain已经不复存在,你可以在Googling for it找到一个副本。我高度推荐Petzold的书3D Programming for Windows。还有大量的在线教程,我会谷歌一些现代的。

答案 1 :(得分:16)

好问题! 结果答案取决于您的目标。

  1. 方法。您有兴趣将一些.3ds(.obj,..)模型对象作为场景的静止部分,而不进行任何交互式转换(移动,缩放等)。这种方法仅用于简单播放(学习WPF3D)
  2. 方法。您正在考虑使用完整的交互式部件来支持Viewport3D中的任何WPF3D转换。这种方法通常用于专业应用中的丰富3D场景操作。
  3. 解决此任务的工具相对较多,但没有任何案例通用解决方案。 完成这项任务有两个麻烦:

    1. 工具之间的格式不兼容。例如,一个工具创建 .3ds(.obj,..)模型,但是用于将其转换为.xaml的第二个工具 (阅读.3ds,.obj,...)不明白这个模型。
    2. 您在3DMax等专业工具中准备的模型,......不是 在WPF3D中似乎很好。
    3. 此外,通过兼容(用于进一步充分的WPF演示)方式更改模型中的材料将是非常好的。

      准备多次试验以获得最佳效果...... 看来你差不多2点 - 接近。 因此,阅读.3ds,.obj文件的最佳工具 Helix 3D Toolkit

      食谱非常简单。例如,在VB中

      Dim CurrentHelix3DSStudioReader As New StudioReader()
      Dim MyToyModel3DGroup as Model3DGroup = CurrentHelix3DSStudioReader.Read("MyToy.3ds")
      

      或者

      Dim CurrentHelixObjReader As New ObjReader()
      Dim MyToyModel3DGroup as Model3DGroup = CurrentHelixObjReader.Read("MyToy.obj")
      

      操纵.3ds,.obj,...模型的最佳工具,包括在.xaml中保存是Deep Exploration。我在WPF 3D场景中的示例。快速完整托管对象

      My sample in WPF 3D scene. Fast full managed object

答案 2 :(得分:1)

您可以下载3dsmax的试用版并转换模型 Xaml exporter for 3D Studio Max这个工具给了我很多帮助。

答案 3 :(得分:1)

您可以使用" Blend for Visual Studio"导入OBJ文件并将其转换为XAML。请看这里:

alternative-to-zam-3d-editor