3D动画 - WPF还是XNA?

3
我希望制作几十个基本形状的3D动画。

enter image description here

我阅读了每个原子的初始位置和其他参数,需要绘制一个描述顺序的动画。我需要从所有角度查看它,操作颜色和alpha通道。
总而言之,缩小范围到WPF 3D或XNA。
我会选择WPF,因为我熟悉它,而且将文本框添加到应用程序中要容易得多。 然而,我担心WPF不能处理动画,或者如果我需要添加一些额外的部分,可能会有问题。
哪个更适合呢?你能给我指点一些如何管理数据结构并绘制动画的示例吗?(我是新手3D动画)
编辑: 如果有人感兴趣,这里是我使用Model3DGroup从GeometryModel3D构建模型的代码和应用程序http://alloysvisualisation.codeplex.com/。结果,性能非常好。
3个回答

5
我目前参与的项目中使用WPF和XNA进行3D渲染。在WPF应用程序中使用XNA,因此这两者结合使用没有问题。
如果您有一个简单的场景,我会使用WPF进行3D渲染,因为我喜欢它提供的抽象化。您只需将对象添加到场景中,设置一些相机和灯光,其余工作都由它处理。我们使用WPF制作了一个可视化编辑器,其中包含多达500个圆柱体,没有遇到性能问题。我们遇到的唯一性能问题是向场景中添加/删除对象需要很长时间。因此,如果您需要频繁进行添加/删除操作,则WPF不适合您。
然而,如果您有更复杂的需求或应用程序对性能要求很高,则建议使用XNA更接近底层。它为您提供了更经典的、类似于OpenGL的渲染方法。
总结:
WPF:
- 使用简单 - 良好的抽象化 - 总体上性能良好 - 添加/删除对象时性能较差
XNA:
  • 接近底层
  • 性能良好
  • 如果您习惯于OpenGL,则感觉更像OpenGL
  • 可与WinForms和WPF一起使用

我们在WPF方面使用的资源是Charles Petzold关于该主题的著作。我们目前使用他的库中的内容。它让我们快速入门,但我们遇到了一些问题,因此我建议要谨慎。不过,他网站上的内容值得一看。


对象可以被添加和删除,但是可能会添加/删除10-20个对象。添加/删除数百个项目需要比我们想象的时间更长,因此打开场景不够快速。 - Erik Öjebo

3
XNA + WPF 是解决方案。本文将引导您完成此过程:http://www.codeproject.com/Articles/38301/XNA-integration-inside-WPF 对于大型 3D 工作,XNA 明显更快且更方便。WPF 对于 3D 也不错,但 XNA 更容易调试,并提供了许多有用的特性,例如可添加的透明度混合和相机对象。此外,您还可以找到好的库来支持您的工作。
如果您不确定,那么您应该毫不犹豫地使用 XNA 对象来绘制图形。WPF 将为您提供按钮和文本等元素,而这些在 XNA 中会带来不便。

2

Xna将更容易调试3D方面的内容。

您可以按照WinForms示例,在Windows Forms表单中托管Xna,然后所有熟悉的控件,如下拉菜单和按钮都能良好地运行并与Xna交互。


有没有一个好的例子来展示如何结构化应用程序以使用相机等绘制n个对象? - Lukasz Madon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接