2012-05-12 66 views
2

我是一位Java程序員,他對Swing有相當豐富的經驗,我曾用它來進行2D遊戲編程。我有興趣編寫3D遊戲,我不確定使用哪種API - OpenGL或Direct3D。OpenGL vs Direct3D?

  • 我不關心可移植性或向後兼容性或任何。我正在編程作爲Windows機器上的一項愛好。
  • 我選擇的最重要的因素是:哪個API爲我提供了最佳的性能 - 速度比?
  • 但是,我也希望在Internet上有相當好的API。我不想浪費時間在黑暗中摸索。

其他不太重要的因素

  • 哪一個具有 「乾淨」 的代碼?哪一個更加面向對象?
  • 我知道OpenGL通常與C++一起使用。我寧願使用C#。哪兩個更容易在C#中使用?

回答

8

兩者都可以從C#使用,分別由於OpenTKSharpDX。其中,SharpDX是最年輕的,也是最積極開發的。

如果使用得當,兩者都能提供出色的性能。我不認爲有可能證明其中一方比另一方更快。

當然,OpenGL在各個平臺上的兼容性要寬得多,但如果你關心的只是Windows,那麼這不是問題。

Direct3D比OpenGL稍微面向對象;它是一個COM API,而OpenGL是一個C API。這兩者都不會導致漂亮的代碼,畢竟它們是非常低級的API。如果面向對象和乾淨是你想要的,你應該看看比這些API更高級的實用程序,例如XNA/MonoGame。

3

我不是一個黨派,但是你所說的一切都表明,你可能會更喜歡微軟的解決方案,並且可以說更有效率。

你沒有提到你的操作系統或環境。但是,讓我們假設你有一臺相當快速的PC(具有硬件加速),大量的RAM,大量的磁盤...以及理想的Windows 7/64位。

您可以在這裏免費下載的Visual Studio:

您可以在這裏下載的DirectX SDK:

你Ç無處不在找到大量有用的教程,文檔和示例代碼。

祝你好運 - 玩得開心!