2011-04-23 81 views
2

我目前正处于项目的早期阶段,难以决定使用哪个框架。我听到人们说WPF已经死了,但它似乎是编程Microsoft Surface应用程序的唯一方法。这是该项目未来可能的目标之一,但不是主要关注点。Silverlight 5,WPF或XNA for 2d/3d NUI可视化应用程序?

但主要关注的是:同一视图中的2d和3d对象(以及kinect/voice support)。一些2d对象是SVG文件。从迄今为止在线阅读的内容来看,在XNA中渲染SVG图形并不容易(对于这个问题也不是Silverlight 5 3D)。我已经看到一些SVG到XAML转换器,但是可以在3d视图中使用这个结果吗?或相反亦然?考虑到它不会成为一款游戏,而是一款商业应用程序,我很想排除XNA,但是之后我也需要很好的性能,因为会出现一些图形化的东西,如果可能的话,支持高决议/视频墙。考虑到视频墙可能会排除WPF,因为我已经读过,如果分辨率低于GPU的纹理尺寸限制,它将只使用硬件加速。

有没有打算运行在浏览器或电话的应用程序,这样我很想排除的Silverlight 5

任何提示将大大赞赏。 谢谢!

+1

不仅WPF死了,Silverlight和WinForms也是如此!我非常确定HTML 5是唯一没有死的技术。不过,祝你好运。 – Gabe 2011-04-23 21:49:57

+0

@gabe好吧,让我们不要把它全都叫死。在HTML 5标准实际完成/接受并且所有浏览器都支持HTML 5标准之前,我们将在未来5年或更长的时间内完成。 – user695595 2011-04-23 22:33:22

+0

LOL @Gabe。你忘了提及编译器(和所有编译语言)也是死的! – jv42 2011-04-26 08:49:36

回答

1

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

所以你可能会发现你的3D渲染代码在任何情况下都是XNA和SL5相同的。

Here is a question about SVG in XNA。基本上回答是:你必须编写自己的硬件加速的SVG渲染器 - 这是一个非常困难的任务。但是,如果你的SVG文件永不改变,你可以使用现有的软件渲染器来渲染它们。

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

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

SL5提供的3D API基本上是XNA的精简版。 WPF的3D API看起来只是为你呈现模型 - 它似乎并没有让你对XNA感兴趣。如果您有充足的理由使用XAML,那么WPF可能是一个不错的选择。否则,我会去与XNA。

相关问题