2008-12-21 27 views
4

哪個是.NET 3D圖形編程的首選方法:Direct3D或XNA似乎是當前的技術,但最適合非遊戲相關的編程?託管Direct3D或XNA的非遊戲相關的3D圖形編程?

另外,Managed Direct 3D已經停產? XNA似乎並不適合非遊戲開發。

+0

我thingk你的意思是「XNA並沒有真正似乎是適當的,除非遊戲的開發。」 – faulty 2008-12-21 17:39:38

+0

@faulty:更正 - 謝謝:) – 2008-12-21 17:50:08

回答

1

如果它不是遊戲相關的是什麼?如果你回答這個問題,我們可能會給你一個很好的答案,無論如何,取決於應用程序WPF可能是一個很好的答案。

0

我不是一個專家,但是當我混淆了兩者,我發現XNA的方式更好。我只是玩弄我的Zune和PC遊戲。我沒有足夠的時間來混淆DirectX,我找到了更多XNA的例子。

您還有一個完整的community來幫助你。

4

邑,太糟糕MS停止MDX。我目前正在使用SlimDX進行我們的非遊戲開發。它不是MDX的直接替代產品,但與MDX v1.1的API相比,至少API設計非常直觀。我已經使用MDX v1.1 + .Net v1.1用於我們產品的第1版。至於版本2,我們正在遷移到.Net 2.0。 MDX v1.1不適用於.Net 2.0,另外它還有其他固有的問題。因此我們不得不尋找替代品。

最初XNA是我們最好的選擇。然後,因爲它瞄準了遊戲市場並且與xbox 360兼容,我們發現我們需要編寫很多解決方法/黑客手段以使其適用於我們。更糟的是與我們在產品中廣泛使用的DirectShow的互操作性。 MS在現有技術和新技術之間創造了巨大差距,目前MDX和DirectShow的最新替代品不夠強大,無法替代舊版本,而且我們也無法等待下一個版本。

我不會說SlimDX是非遊戲開發的最佳選擇。但對我而言,這是事實。而且由於它是開源的,我們總是可以對我們認爲合適的地方進行更改。當我們使用SlimxDX + DirectShow.Net時,會有一些意想不到的麻煩。當我們使用MDX 1.1 + DirectShow.Net時,這些毛刺不存在。我的猜測是,在內部,MS進行了相當多的黑客工作。

無論如何,如果您根本不使用DirectShow,請考慮Ogre3D/MOgre3D。 MOgre3D是一款精心打造的3D引擎Ogre3D的管理包裝。這是我們的第一選擇,但我們無法使用它,因爲它不支持DirectShow。

0

Xna是Microsoft的Managed DirectX。不幸的是,他們沒有寫很多關於將它用於非遊戲相關的東西,但它可以完成。

不幸的是我找不到任何好的資源在線,顯示如何做到這一點。

3

被管理的DirectX並沒有因爲被重寫爲XNA而被放棄。的確,XNA是在Xbox 360的基礎上設計的,但XNA適合用於非遊戲3D編程,就像我使用的任何其他3D框架一樣。不要忽視XNA極其便利的內容導入管道......您可以將模型和着色器放到卡上並輕鬆渲染。

如上所述,創建者俱樂部社區非常豐富,他們的Winforms tutorials可能會引起您的興趣。

1

這裏的簡單答案可能是XNA。也許WPF。這取決於。

如果你正在尋找任何的遠程遊戲型MUD,XNA確實是一個很好的解決方案,因爲它給你的是網格非常好,只是一個3D互動世界的任何一個實施框架。除了處理所有3D視覺材料之外,您還可以輕鬆獲取碰撞檢測,照明,時序和攝像頭等所有內容。如果你正在做的是某種3D虛擬空間,那麼你擁有的東西可能已經非常接近成爲一款遊戲了,XNA除了圖形端還會給你更多的東西。

否則,如果你正在尋找3D UI和數據可視化,WPF可能是更多的你想要什麼。沒有什麼不必要的開銷,而且包括命令或數據綁定在內的其他內容對您來說可能會更有用。據我所知,它被設置爲在後端使用硬件加速,並在必要時通過軟件處理材質着色器和各種3D效果,以便用戶獲得視覺上一致的體驗。

如果你有這並沒有真正很好地成爲這兩種陣營的一個例子,我真的有興趣在聽到它。可能是人誰想寫一個有用的圖形庫的好機會......