Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 3d动画-WPF或XNA_C#_.net_Wpf_3d_Xna - Fatal编程技术网

C# 3d动画-WPF或XNA

C# 3d动画-WPF或XNA,c#,.net,wpf,3d,xna,C#,.net,Wpf,3d,Xna,我想制作几十个基本体的3d动画 我读取每个原子的初始位置和其他参数,我需要绘制一个描述顺序的动画。我需要查看所有角度,操纵颜色和alpha通道 总之,它缩小到WPF 3D或XNA 我会选择WPF,因为我知道它,而且它是一种更容易在应用程序中添加文本框的方法。 然而,我担心WPF不会处理动画,或者如果我需要添加一些额外的位,这将是一个问题 哪一个更好?你能给我举一些如何管理数据结构和绘制动画的例子吗?(我是3d动画新手) 编辑: 如果有人对这里的代码和应用程序感兴趣,我将使用Model3DGro

我想制作几十个基本体的3d动画

我读取每个原子的初始位置和其他参数,我需要绘制一个描述顺序的动画。我需要查看所有角度,操纵颜色和alpha通道

总之,它缩小到WPF 3D或XNA

我会选择WPF,因为我知道它,而且它是一种更容易在应用程序中添加文本框的方法。 然而,我担心WPF不会处理动画,或者如果我需要添加一些额外的位,这将是一个问题

哪一个更好?你能给我举一些如何管理数据结构和绘制动画的例子吗?(我是3d动画新手)

编辑:
如果有人对这里的代码和应用程序感兴趣,我将使用Model3DGroup从GeometryModel3D构建一个模式。因此,性能非常好。

Xna将提供更轻松的3d方面调试


您可以按照winforms示例在windows窗体中托管xna,然后所有熟悉的控件(如下拉列表和按钮)都可以正常工作并与xna交互。

在我目前正在处理的项目中,我们使用WPF和xna进行三维渲染。XNA内容是从WPF应用程序中使用的,因此将这两种内容结合使用也没有问题

如果你有一个简单的场景,我会使用WPF进行3D渲染,因为我喜欢它给你的抽象。您只需将对象添加到场景中,设置一些摄影机和灯光,其余的将为您处理。我们将WPF用于包含多达500个圆柱体的可视化编辑器,不会出现任何性能问题。我们遇到的一个性能问题是,从场景中添加/删除对象需要很长时间。所以WPF不是一个很好的选择,如果这是你需要经常做的事情

但是,如果您有更复杂的需求,或者如果应用程序对性能至关重要,我会选择XNA来更接近这一点。它为您提供了一种更“经典”的、类似OpenGL的渲染方法

总结如下:

WPF:

  • 简单易用
  • 很好的抽象
  • 总体性能正常
  • 添加/删除对象时性能不佳
XNA:

  • 接近金属
  • 好成绩
  • 如果你习惯了,感觉更像OpenGL
  • 可与WinForms和WPF一起使用

我们在WPF方面使用的一个资源就是这个主题。我们现在用的是他图书馆的资料。这让我们很快就开始了,但我们遇到了一些问题,所以我建议大家要小心。然而,他的网站上的东西值得一看。

确切地说,XNA对于广泛的3D工作来说更快、更方便。WPF适合3D,但XNA更易于调试,并提供了一些不错的功能,如添加alpha混合和摄影机对象。此外,您还可以找到好的库来支持您的工作


如果您不确定,那么毫无疑问应该使用XNA对象来绘制图形。WPF将为您提供按钮和文本,而这反过来又是XNA的一大难题。

是否有一个很好的示例,说明如何构造应用程序以使用照相机等绘制n个对象?可以添加和删除对象,但可能会添加/删除10-20个对象。添加/删除数百个项目所需的时间比我们希望的要长,因此打开场景并不快。