Silverlight 5,WPF或XNA用于2d / 3d NUI可视化应用程序?

时间:2011-04-23 21:46:19

标签: wpf silverlight xna visualization nui

我目前处于项目的早期阶段,很难决定使用哪个框架。我听说有人说WPF已经死了,但它似乎是编写Microsoft Surface应用程序的(唯一的?)方式。这是该项目未来可能的目标之一,但不是主要关注点。

然而,主要焦点是:同一视图中的2d和3d对象(以及kinect /语音支持)。一些2d对象是SVG文件。从我在网上看到的到目前为止,在XNA中渲染SVG图形并不容易(也不是Silverlight 5 3D)。我见过一些SVG到XAML转换器,但是这个结果可以在3d视图中使用吗?反之亦然?

考虑到它不是一款游戏,而是一款商业应用程序,我很想排除XNA,但是我还需要良好的性能,因为会有相当多的图形化内容,如果有可能支持高分辨率/视频墙。考虑到视频墙可能会排除WPF,因为我已经读过,如果分辨率低于GPU的纹理大小限制,它只会使用硬件加速。

没有打算在浏览器或手机中运行该应用程序,因此我很想排除Silverlight 5。

任何提示都将非常感激。 谢谢!

1 个答案:

答案 0 :(得分:1)

我不排除XNA的基础是“游戏”。您只需使用硬件加速3D渲染所需的部件,而忽略其余部分。这实际上是Silverlight 5的功能!

因此,您可能会发现在任何情况下XNA和SL5之间的3D渲染代码都是相同的。

Here is a question about SVG in XNA。基本上答案是:您必须编写自己的硬件加速SVG渲染器 - 这是一项非常困难的任务。但是,如果您的SVG文件永远不会更改,您可以使用现有的软件渲染器将它们渲染为纹理。

如果您将SVG转换为XAML,则无论如何都必须将其渲染为纹理以在SL5 3D视图中使用它(除非它是叠加层)。所以那里没有大胜利。我不知道2D-3D合成在WPF中是如何工作的。

您的决定实际取决于您是否会发现SL5或WPF为用户界面提供的内置功能有用吗?看你基本上是在创建自己的用户界面,你可能无法从提供的2D界面中获得太多用途。

SL5提供的3D API基本上是XNA的简化版本。 WPF的3D API看起来只是为你呈现模型 - 它似乎并没有为你带来太多的XNA。如果您有令人信服的理由使用XAML,那么WPF可能是一个不错的选择。否则我会选择XNA。