2011-04-23 84 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。

相關問題