2013-01-03 58 views
2

我對大學的項目,使一個3D應用程序,它具有以下功能:C++ VS C#開發的OpenGL的3D應用程序(不是遊戲)

  1. 一個真實的物理對象的軌跡行駛過程中記錄的硬件(3軸加速度計和陀螺儀)
  2. 我的應用程序從文件中獲取存儲的信息,並在窗口中生成3D模型,在表面上重現真實物體的軌跡 - 就像在3D空間中移動和旋轉的立方體。

從搜索網絡和詢問朋友,我發現我應該使用OpenGL(因爲應用程序應該可以在手持設備上使用後)。 問題是我應該用什麼語言 - C#或C++? 我知道,對於遊戲來說,C++是首選(在資源方面更快且價格便宜),但由於此應用更像是(如果不是完全)一個短的3D電影,長度不超過2-3分鐘,紋理和對象較少,實際上會有差異嗎?

我更習慣C#做最近的項目,現在當試圖回到C++時,我發現它非常困難。所以我更喜歡C#,但如果C++的好處是值得的,我會回到它。另一方面,我對OpenGL很陌生,這些概念讓我非常頭疼。

+0

「我應該用什麼語言......?」只有你可以回答的問題。這完全取決於你對什麼感覺舒適,真的。 – cHao

+0

有一個類似的問題,其中包含一些有關不同之處的答案:http://stackoverflow.com/questions/8222138/what-advantages-exist-in-c-over-c-sharp-when-working-with- opengl閱讀那裏的答案,大多數人似乎傾向於C++。 –

+0

我的一個朋友在C#中做了一個類似的程序,結果很好。它無論如何並沒有真正強調CPU,所以原始性能並不是那麼重要。 – harold

回答

2

不會有明顯的差異,特別是因爲您不會使用大量資源。

+0

因此,項目規模越大或用戶基數越大,它變得越相關,但可能需要更長的時間進行編碼(沒有第三方工具/廣泛的C++知識)? – Coops

+1

可能是的。我的C++知識雖然存在,但相當有限。但是,由於C#在虛擬機上運行,​​它本質上比較慢(假設運行時沒有進行重要的優化)。不過,我的觀點是,OP不必擔心語言,因爲該應用程序的體積將會微不足道。 – Denzil

2

使用C#的東西以及諸如OpenTK將工作做好,除非你是在渲染大規模量的3D網格計劃。如果你更熟悉C#,我一定會採用這種方式。另外,由於您是通過板載硬件與軟件模擬記錄對象的物理特性,因此兩種語言的計算速度優勢都很小。

看看樣品庫在OpenTK Gallery

4

你應該使用C#。如果你不習慣使用C++,並且對語言不熟悉,那麼你就無法從它的性能中受益。

+0

與C++相比,C++的速度提高的速度是指數級的增長,我聽到反微軟的窺探告訴我壞,卻忽略了C#的好處。) – Coops

+0

@CodeBlend沒有說C#應用程序編寫得不能像C++那樣快。但是C++有一些功能可以讓C#脫離性能的水中。 – Caesar

+3

這是一條很好的規則。在本地和.NET性能討論中很少有人提出C++性能很大程度上取決於開發人員的專業知識,但這是解釋所有不同「頭對頭」性能結果的一個事實。事實是,如果你問是否決定爲你使用哪種語言,你不知道如何優化C++應用程序。 –