2012-05-12 95 views
5

所以我想開始玩OpenGL,目的是爲了實現我現在已經使用了很長時間的一些遊戲創意,但是我注意到有幾個版本的OpenGL。OpenGL版本

我理想上也希望支持較老的電腦,所以我想知道如果OpenGL 2.1是最好的版本使用。 OpenGL 4甚至不能在我的臺式機上工作:O

遊戲的最低規格類型是DX9時代顯卡,所以基本上大多數現代計算機都會運行它(即使是低端板載顯卡)。因爲我知道Java是最好的(過去已經完成了Java3D),所以我會考慮JOGL的實現,並且我想部署到所有3個主要的操作系統。

考慮到這一點,你會向我建議什麼樣的書?讀過OpenGL 3或4的書是否是毫無意義的,因爲我已經讀過這些書有很大的變化?我是否應該在2.1版本上購買一本舊書?

回答

2

OpenGL 2.1可能是最好的。作爲比較它具有與DirectX 9c相同的兼容性,這是最新的Windows XP可以獲得的,並且我知道有很多XP盒子。我的一些朋友仍然喜歡XP。

在這個時間點不支持這些API的顯卡可能會非常陳舊。

如果用戶無法使用2.1運行遊戲,則可能需要建議用戶購買新計算機。如果你採用這種思想,你甚至可能想要使用OpenGL 3.0。

在我看來,我會先嚐試學習2.1並獲得一些練習,然後開始使用3.x並最終使用4.x.大型遊戲公司通常不關心兼容性,並讓用戶購買新硬件。

+0

謝謝你的回答。 XP和DX9風格的兼容性是我的目標,因爲它不會成爲下一個COD;)我看到一本書推薦名爲「opengl superbible」,但最新版本似乎覆蓋OpenGL 3,我應該在附近偵察爲第四版? – user859194

+1

第四版看起來不錯。它涵蓋2.1,似乎有很好的例子和源代碼,甚至包括Linux的製造文件 –

+0

是的,我想我會檢查出:) – user859194

3

出於好奇,你在Linux上? Linux系統真的是這裏的主要瓶頸,或者說,運行開源驅動程序的Linux系統是瓶頸(帶ATI或NVIDIA驅動程序的系統不是問題,它們將支持最新最好的)。事情正在形成,儘管今年早些時候發佈了Mesa 8,終於有了一個開源的OpenGL 3解決方案。

我肯定會建議你不要忽略着色器,如果我在你的鞋子裏,因爲你使用的是JOGL,我會考慮使用OpenGL ES 2 profile來實現它(因爲你反正使用java,這會使如果你覺得合適的話,所有東西都很容易移植到機器上)

哦,另外,既然你是購買書籍,版)。

我走過這本書的早期版本,許多衛星以前在uni課程。最近買了第六版,只是因爲我非常喜歡這個老版本,而且它的質量:)

+0

我實際上頻繁使用所有3個操作系統,但它主要是Windows和OSX。我不會在看一個Android端口,我的遊戲想法在移動設備上不能很好地工作:)我會看看那本書,謝謝你的回答 – user859194

0

請記住老派的OpenGL仍然受支持。你不必使用現代的OpenGL,如果你正在做一些相對非複雜或非特定的事情,你完全可以使用固定功能管道。如果你想開始做先進的照明或類似的東西,那就是現代OpenGL派上用場的地方。

說實話,我有點像老派的OpenGL,這很容易,你可以更快地在屏幕上獲得東西。現代的OpenGL是令人難以置信的,但它的代價是更復雜,你需要這麼多的代碼,並且在你開始有效地使用它之前你必須知道這麼多。

自你問以來的主要區別是能夠自定義着色器的工作方式。着色器是在GPU上運行的程序。在過去,這些着色器是預編程的,所以你幾乎無法控制你希望它們如何工作,所以你在OpenGL中可以做的事情受到限制(它完成了工作,它只是更通用,因此更少強大)。因此,使用現代OpenGL,您可以自定義着色器的工作方式,例如,有一種叫做頂點着色器的東西,它是一個着色器,處理點推送到GPU並找出定位這些點的位置。在現代OpenGL中,您可以通過使用名爲GLSL的東西來自定義這些着色器的工作方式GLSL是一種C語言半彙編語言,被推送到GPU,這是舊式和現代OpenGL的主要區別。至於要獲得一本書,你將不得不爲2.0獲得一本2.0的書,它甚至不會和新的OpenGL一樣。有一些通用的概念可以轉移到現代的OpenGL上,但大部分情況完全不同。我訂購了Andre Lamothe的OpenGL遊戲編程,因爲我認爲5美元?這是2.1的一個很好的介紹,代碼是用Win32編寫的,並且由於Windows API在幾乎所有的代碼(如果不是全部的話)都幾乎沒有改變,即使該書大約12年(相當於表明它的寫得很好),而且它實際上有非常有趣的項目(動畫機器人,頭幾個旋轉立方體)。無論如何,祝你好運。這是一條艱難漫長的道路,但它是如此的有益。