4

我的程序可以有效地使用 VBO,但是据我所知,除了 1 个人之外,我所知道的没有人拥有一台甚至接近于支持 OpenGL 3.0 的计算机。当他们都运行程序时,我所做的只是没有深度的平面纹理,因为他们的卡不支持 VBO 也不支持我正在使用的着色器语言。

我现在正在编码以支持旧计算机(之前的 OpenGL 3.0 支持)。除非完全必要,否则我不想在立即模式下进行绘图编码,所以我将恢复到顶点数组。

支持顶点数组需要什么版本的 OpenGL?

我似乎无法在任何地方找到它。

扩展注册: http ://www.opengl.org/registry/

只是为了澄清我在谈论客户端顶点数组,不要与服务器端顶点数组对象(VAO)或顶点缓冲区对象(VBO)混淆

4

2 回答 2

8

我会在这里有点全面。

自 OpenGL 1.1 以来,基本的顶点数组 API 一直是核心。

OpenGL 1.1介绍:

  • glDrawArraysglDrawElements(以及glArrayElement,但实际上没有人应该将它用于任何事情进行渲染。
  • glVertexPointer, glTexCoordPointer, glNormalPointer, 和glColorPointer“属性”。请注意,您只会得到一个纹理坐标指针。

OpenGL 1.2介绍:

  • glDrawRangeElements,以提高某些驱动程序的性能。这些天不是很有用,但是如果您正在为旧硬件编码,请查看它。

OpenGL 1.3介绍:

  • glActiveTexture,因此允许s 的GL_MAX_TEXTURE_UNITS数量glTexCoordPointer

OpenGL 1.4介绍:

  • glMultiDrawArraysglMultiDrawElements
  • glSecondaryColorPointerglFogCoordPointer

OpenGL 1.5介绍:

  • 缓冲对象。

OpenGL 2.0介绍:

  • glVertexAttribPointer用于通用着色器属性。可用于客户端顶点数组。
于 2013-01-08T03:07:27.497 回答
5

我在规范中最早提到的顶点数组是OpenGL 1.1(第 2.8 节顶点数组,第 21 页)。

于 2013-01-08T02:06:49.237 回答