我目前正处于项目的早期阶段,很难决定使用哪个框架。我听到人们说WPF已经死了,但它似乎是(唯一的?)编写Microsoft Surface应用程序的方法。这是该项目未来可能的目标之一,但不是主要关注点。
然而,主要的关注点是:同一视图中的2d和3d对象(以及kinect/语音支持)。一些2d对象是SVG文件。从我到目前为止在网上读到的内容来看,在XNA中渲染SVG图形并不容易(Silverlight53D也不是)。我见过一些SVG到XAML的转换器,但是它的结果可以在3d视图中使用吗?或者反之亦然?
考虑到这不是一个游戏,而是一个商业应用,我很想排除XNA,但我也需要良好的性能,因为将会有相当多的图形内容正在进行,如果可能的话,支持高分辨率/视频墙。考虑到视频墙可能会排除WPF,因为我读到只有当分辨率低于GPU的纹理大小限制时,它才会使用硬件加速。
并不打算在浏览器或手机中运行该应用程序,因此我很想排除Silverlight 5。
任何建议都将不胜感激。谢谢!
发布于 2011-04-24 10:31:56
我不会因为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提供的3DAPI基本上是XNA的精简版本。WPF的3DAPI看起来只是为你渲染模型--它似乎不会给你带来比XNA更多的东西。如果您有一个令人信服的理由来使用XAML,那么WPF可能是一个不错的选择。否则我会选择XNA。
https://stackoverflow.com/questions/5767157
复制相似问题