2

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

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

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

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

任何提示将不胜感激。谢谢!

4

1 回答 1

1

我不会因为它是“游戏”而排除 XNA。您可以只使用硬件加速 3D 渲染所需的部分,而忽略其余部分。这实际上就是 Silverlight 5 所做的!

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

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

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

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

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

于 2011-04-24T02:31:56.177 回答