2013-01-08 75 views
3

我有我的程序與VBO的高效工作,但它已經來到我的知識,沒有人知道,除了1人有一臺計算機,甚至接近支持OpenGL 3.0。當他們都運行程序時,我所做的都是平坦的紋理,沒有深度,因爲他們的卡片不支持VBO或我正在使用的Shader語言。OpenGL Vertex Arrays所需版本

我現在正在編寫支持舊電腦的編碼(Prior OpenGL 3.0支持)。除非完全有必要,否則我不想在即時模式下繪製代碼,因此我將恢復爲頂點數組。

什麼版本的OpenGL需要支持頂點數組?

我似乎無法找到這個地方。

擴展註冊表: http://www.opengl.org/registry/

只是爲了澄清我說的客戶端頂點數組不與服務器端的頂點數組對象混淆(VAO的)或頂點緩衝對象(VBO的)

+1

如果他們不具備緩衝對象(即使是英特爾的蹩腳1.4的實現有那些)的支持,賠率是好的,他們的OpenGL實現也非常馬車。所以,如果你不能在硬件上進行實際測試,那麼支持這種卡就是一個難以預料的前景。 –

+0

非常真實。這就是爲什麼如果VBO不受支持,這只是一個後退**。 – CoderWalker

回答

7

我會在這裏稍微全面。

自OpenGL 1.1以來,基本的頂點數組API已經成爲核心。

的OpenGL 1.1介紹:

  • glDrawArraysglDrawElements(以及glArrayElement,但真的沒有人應使用適用於任何永遠)進行渲染。
  • glVertexPointer,glTexCoordPointer,glNormalPointerglColorPointer對於「屬性」。請注意,您只能獲得一個紋理座標指針。

的OpenGL 1.2介紹:

  • glDrawRangeElements,對一些驅動程序提高性能。這些日子不是很有用,但是如果你正在編寫舊硬件,請仔細研究它。

的OpenGL 1.3介紹:

  • glActiveTexture,因此允許GL_MAX_TEXTURE_UNITS號碼glTexCoordPointer

的OpenGL 1.4介紹:

  • glMultiDrawArraysglMultiDrawElements
  • glSecondaryColorPointerglFogCoordPointer

的OpenGL 1.5介紹:

  • Buffer對象。

的OpenGL 2.0介紹:

  • glVertexAttribPointer爲通用着色器的屬性。可用於客戶端頂點數組。
+2

這太棒了!畢竟不需要立即模式。如果他們的電腦不支持OpenGL 1.1,我相信他們不應該運行遊戲。 – CoderWalker

+0

這段歷史很美妙,我花了整天的時間研究openGL提交頂點的歷史,這比許多維基百科文章都要好。 – 2014-06-01 05:06:01