我想制作几十个基元的三维动画
我读取了每个原子的初始位置,并且我需要绘制一个描述顺序的动画。我需要查看所有角度,操纵颜色和alpha通道。
总而言之,它缩小为 WPF 3D或XNA 。
我会选择WPF,因为我知道它并且更容易将TextBox添加到应用程序。 然而,我担心WPF不会处理动画,否则如果我需要添加一些额外的位则会有问题。
哪一个更适合它?你能指点一些如何管理数据结构和绘制动画的例子吗? (我是3D动画的新手)
编辑: 如果有人对这里的代码和app http://alloysvisualisation.codeplex.com/感兴趣,我使用Model3DGroup从GeometryModel3D构建一个模式。因此,性能非常好。
答案 0 :(得分:5)
我们在目前正在进行的项目中使用WPF和XNA进行3D渲染。 XNA的东西是在WPF应用程序中使用的,所以使用这两个组合也没有问题。
如果你有一个简单的场景,我会使用WPF进行3D渲染,因为我喜欢它给你的抽象。您只需将对象添加到场景中,设置一些摄像机和灯光,其余的就会为您处理。我们使用WPF作为包含多达约500个柱面的可视编辑器,没有任何性能问题。我们遇到的一个性能问题是,从场景中添加/删除对象需要很长时间。因此,如果你需要做很多事情,那么WPF并不适合。
但是,如果您有更复杂的需求或者应用程序性能至关重要,我会选择XNA来接近金属。它为您提供了一种更“经典”,类似OpenGL的渲染方法。
总结:
<强> WPF:强>
<强> XNA:强>
我们用于WPF方面的资源是关于这个主题的Charles Petzold's writings。我们目前使用他图书馆的东西。它让我们很快就开始了,但是我们遇到了一些问题,所以我建议谨慎一些。但是,他网站上的东西值得一看。
答案 1 :(得分:3)
XNA + WPF是解决方案。本文将指导您完成整个过程:http://www.codeproject.com/Articles/38301/XNA-integration-inside-WPF
定义XNA对于大量3D工作来说更快更方便。 WPF适用于3D,但XNA更易于调试,并提供了一些很好的功能,例如附加alpha混合和Camera对象。此外,您可以找到好的库来支持您的工作。
如果您不确定,那么您应该毫无疑问地使用XNA对象来绘制图形。 WPF将为您提供按钮和文本,这反过来又是XNA的痛苦。
答案 2 :(得分:2)
Xna将提供更简单的3d方面调试。
您可以按照winforms示例在Windows窗体表单中托管xna,然后所有熟悉的控件(如下拉菜单和按钮)都可以正常工作并与xna交互。