2009-08-10 65 views
6

試圖在庫決定創建一個窗口和捕捉用戶輸入我的OpenGL應用程序,但也有隻是太多的選擇:的OpenGL窗口化圖書館2009年

GLUT已經過時了。我喜歡GLFW,但是看起來你不能在顯示它之前設置窗口位置(我希望它居中,這麼多要問?),所以你看到它出現,然後轉移,這困擾着我。 Plus開發似乎也停止了。 SFML有一些很好的功能,但它使用事件輪詢而不是回調,我喜歡用於解耦。我不認爲我需要FLTK的所有GUI功能。 SDL速度很慢(似乎沒有充分利用GPU)。另外3個我不太瞭解(FreeGLUT,OpenGLUT,OGLWFW)。那麼,哪些是罪惡的較小者呢?我還沒有聽說過其他人嗎?

我只是想做一個簡單的2D遊戲。我對OpenGL非常熟悉,我並不需要繪製例程,但我可能不會抱怨其他功能,如果它們正確實施,可能會有用。

+0

OGLWFW目前似乎只是Win32。該網站稱Linux/Mac支持是「計劃中的」。您還沒有說過,授權或跨平臺支持是否是一個問題 - 如果是,您可能需要記下這一點。 – greyfade 2009-08-10 03:32:30

+0

哦。我一定已經掩飾了這一點。跨平臺很不錯...特別是因爲我現在正在Ubuntu上開發。許可證只是一個小問題,因爲我似乎從來沒有完成任何事情......我從來沒有達到能夠銷售它的程度。 – mpen 2009-08-10 04:03:02

回答

6

我會去Qt。 Nice通用庫+ opengl支持

+0

對......忘了Qt。陡峭的學習曲線,不是嗎?之前嘗試過使用它,完全讓我困惑。 – mpen 2009-08-10 00:52:22

+0

Hrm ......至少它所附帶的編輯是(困惑)。NetBeans 6.8似乎對Qt有一定程度的支持,所以讓一個簡單的應用程序啓動並不是那麼糟糕。 – mpen 2009-08-10 01:11:52

+0

我在Windows上使用Qt和Visual Studio,並在* nix框上使用Vim/make。它有非常好的文檔和乾淨的API。我認爲有一些教程可以將它與Eclipse/NetBeans /等IDE一起使用。對他們來說就是谷歌 – 2009-08-10 01:34:09

8

SDL允許您創建一個加速的OpenGL上下文(取決於驅動程序/硬件支持)。

我知道你標記爲C++,但是pygame(蟒蛇)是用於創建2D遊戲,同時也支持OpenGL上下文一個偉大的圖書館。 Pygame建立在SDL之上。

Clutter是一種新的基於OpenGL的GUI庫以綁定爲Perl,Python,C#,C++,伐拉和Ruby。我自己並沒有使用它。從網站:

雜波使用OpenGL(和可選 的OpenGL ES在移動和 嵌入式平臺使用)進行渲染,但 與隱藏了開發商的潛在 GL複雜的API。 Clutter API旨在易於 的使用,高效且靈活。

+0

SDL仍然是C-esque(需要清理)並使用事件輪詢而不是回調,並且與OpenGL似乎沒有很好的集成(需要使用SDL包裝函數?)。 – mpen 2009-08-10 00:55:01

+0

一旦你在pygame或SDL中設置了OpenGL上下文,你就可以使用任何你想要的OpenGL。我有一個基本上使用SDL進行窗口和事件輪詢的OpenGL應用程序,以及用於圖形的OpenGL。 – 2009-08-10 01:09:39

+0

呃,是的......我並不是說它不起作用,只是要更多的說服力去擊敗其他圖書館。 – mpen 2009-08-10 01:13:16

7

GLUT和其他GLUT替代品不應用於任何生產應用。他們很適合組裝一個快速演示應用程序,或嘗試一些東西,但不僅限於此。

如果您正在嘗試製作OpenGL遊戲,我推薦使用SDL。它更專注於遊戲需求。它絕對可以與OpenGL一起使用。關於如何使用SDL初始化OpenGL,「SDL OpenGL」簡要的谷歌搜索結果爲this link。啓用OpenGL也應該啓用GPU的硬件渲染。

Qt是一個合理的選擇,但是如果您想要將OpenGL嵌入到更大的桌面應用程序(認爲3D建模,CAD/CAM,醫學可視化等)中,那麼您需要訪問UI的標準操作系統窗口小部件。

+0

是啊......但Qt似乎也更加現代化和精心設計!我的遊戲將有一個編輯器......我*可以*使用這些額外的小部件:p我將考慮將來的項目使用SDL。 – mpen 2009-08-11 17:11:20

1

與作者在近期的核心協議中,OGLWFW的開發已停止。

+0

很高興知道。他們似乎都快死了......現在,你應該去參加一個專業開發的大型框架。 – mpen 2009-12-19 02:56:31

3
IF "learning c++ part of what you're trying to achieve": 
then 
IF "you only want to learn OpenGL with a fullscreen mode": 
    USE GLUT //Because it's VERY VERY simple. You can get set up VERY quick 
ELSE: 
    USE QT //Great library, has many many things that will help you. It is portable, it has a nice API 
ENDIF 

IF "you don't need C++": 
then 
    USE Python //I recommend it, it is fast, no long link times, good api, omg I love this language 

背景:

我也試着製作簡單的2D遊戲一次,我開始用C++和NeHe。我對OpenGL和C++一無所知(擁有Java背景)。語言超越了我,OpenGL也如此。所以這是一個非常艱難的學習曲線。

我不建議這樣做,因爲通過使用動態語言(如Python),您可以得到更快的結果。所以我在幾年後開始學習python。我可以得到「旋轉立方體」工作得更快。

+1

那麼我個人已經知道C++和OpenGL,所以這不是一個真正的問題。我只需要一個跨平臺的窗口API。所有其他花絮在Qt上都很不錯;) – mpen 2009-12-19 02:55:36

3

在C++課程中,我們在2008年的ClanLib 0.8和2009年的ClanLib 2.1中有相當不錯的經驗。自SDL轉換以來,學生的生產力(以其項目質量衡量)大大提高。但是,需要指出的是,2.1仍然非常不完整,並且肯定會遇到尚未實現的功能。

一些團隊使用Irrlicht(3D引擎),效果很好。

SFML看起來很有前途,但我還沒有機會嘗試它。

正如其他人所說,GLUT並不適合任何嚴肅的事情。所提及的其他庫是比遊戲開發庫更多的GUI工具包。