2011-01-27 265 views
9

我該學什麼? OpenGL 4.1或OpenGL ES 2.0?OpenGL或OpenGL ES

我將開發使用Qt的桌面應用程序,但我也可能會在幾個月內開始開發移動應用程序。我對3D,3D數學等一無所知,我寧願在一本好書中花費100美元,而不是在一週內挖掘網站並進行反覆試驗。

我在OpenGL 4.1中看到的一個問題是,據我所知,目前還沒有書(最新的是OpenGL 3.3或4.0),而OpenGL ES 2.0上有書。另一方面,從我的天真的角度來看,OpenGL 4.1看起來像OpenGL ES 2.0 +的增加,所以看起來先學習OpenGL ES 2.0會更容易/更好,然後再選擇着色器語言,等

請不要告訴我用訥河(人們普遍認爲它充滿了壞/舊的做法),榴蓮教程等

感謝

+1

的OpenGL 4和OpenGL 3都是現代的OpenGL和不老的固定功能的OpenGL。所以,如果你學習OpenGL 3,那麼你完全可以使用OpenGL 4進行編碼,那麼學習的主要概念是「頂點緩衝區對象,頂點數組對象(即VBO和VAO)」以及如何使用它們。 – 2016-04-13 15:13:42

回答

8

是的,絕對是用OpenGL ES啓動2.0。事實上,我想說的是從WebGL開始(這幾乎就像OpenGL ES 2.0)。 here以上的公開維基是一個開始的好地方。關於WebGL的好處在於,您不必處理諸如編譯/鏈接之類的事情,並且避免了許多樣板代碼來設置很多東西。所以你要專注於實際的繪圖(這真的很有趣:))。如果你有一本OpenGL ES 2.0的書,它應該仍然能夠很好地映射到WebGL。

此外,您還可以立即運行repository的許多演示程序(並單擊瀏覽器的「查看源代碼」以直接跳轉到代碼中)。從簡單的開始,如:圖像紋理測試,彩色框,紋理框

這些示例,以及您的OpenGL ES 2.0書籍,應該讓你馬上開始。玩的開心!

編輯:我應該還指出,如果你決定去了OpenGL 4.1的路線,你也許並不需要等待一個OpenGL 4.1的書。一本OpenGL 3.3或4.0書可以做得很好。

+0

也注意到,現在webGL僅適用於大多數瀏覽器的測試版本。因此,如果您需要儘快部署應用程序,則需要製作桌面版本。然而,如果你只是*學習*,這是一個很好的開始 – 2011-01-27 12:12:39

2

OpenGL版本通常會爲以前的版本添加新的功能,所以我會說學習OpenGL 4.1實際上是在學習OpenGL 3.0,因爲基礎是相同的,特別是如果您開始使用3D編程。

OpenGL ES 2.0是一種OpenGL 3.x的子集。考慮到這些'事實',我會說學習OpenGL 3+或OpenGL ES 2+是差不多的,細節上有所不同。

請注意,根據您的桌面平臺(操作系統,圖形卡),您可能無法訪問OpenGL 3實現。

桌面上的OpenGL ES 2的實現可能也不可用。

Shezan Baig建議使用WebGL開始可能會對此有所幫助,因爲它委託OpenGL init。問題的瀏覽器 - 有些甚至implement WebGL over DirectX,以提高其可用性。

我的建議是,在你學習的時候,你關注的是三維原理,算法和數學。這些是最難得到的。實現「細節」與OpenGL(ES或不)或DirectX或其他任何東西差別不大。

更確切地說,我建議你在你最熟悉的編程語言開始。在這種語言中,我會使用OpenGL 1.x/2.x:這些'舊'版本的GL包含很多輔助函數(glBegin/glVertex/glEnd; glMultMatrix;等等),它們在3.x + 。使用這些,你會更有效地測試算法。

有在3D編程很多東西,你可以找到參考書已成爲freely available,選擇什麼樣的信息是您用例有趣。

+0

你有什麼建議開始使用「3d原則,算法和數學」? – zxspectrum 2011-01-29 11:35:46

+0

編輯答案,包括一些建議 – rotoglup 2011-01-29 11:51:03

0

是的使用GLES2。

1)便攜式。 2)即使PC遵循GLES2的做事方式。 (除非您的高級和需要GL3/4功能)。

3)你想使用着色期和GLES2有利於學習的正確方法。

請記住OpenGL在Windows上很糟糕。司機通常是廢話。就拿上網本,它支持HLSL 2.0,但不支持GLSL着色器和只運行GL-1.3