openGL之API学习(一六九)glVertexPointer

Posted hankern

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openGL之API学习(一六九)glVertexPointer相关的知识,希望对你有一定的参考价值。

opengl2.1、opengles1.1开始有的函数。glVertexPointer定义一个顶点数据数组, 通常在客户端实现。

如果在指定顶点数组时将非零命名缓冲区对象绑定到 GL_ARRAY_BUFFER 目标(openGL之API学习(二十三)glBindBuffer),则将指针视为缓冲区对象数据存储中的字节偏移量。此外,缓冲区对象绑定(GL_ARRAY_BUFFER_BINDING)被保存为顶点数组客户端状态(GL_VERTEX_ARRAY_BUFFER_BINDING)。

当指定顶点数组时,除了当前顶点数组缓冲区对象绑定之外,大小、类型、步幅和指针都保存为客户端状态。

要启用和禁用顶点数组,请使用参数 GL_VERTEX_ARRAY 调用 glEnableClientState 和 glDisableClientState。如果启用,则在调用 glArrayElement、glDrawArrays、glMultiDrawArrays、glDrawElements、glMultiDrawElements 或 glDrawRangeElements 时使用顶点数组。

void glVertexPointer(    GLint size,
     GLenum type,
     GLsizei stride,
     const void * pointer);
 

size

    Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.

每个顶点有几个数指描述。必须是2,3  ,4 之一,初始值是4.
type

    Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.

数组中每个顶点的坐标类型。取值:GL_BYTE, GL_SHORT , GL_FIXED , GL_FLOAT,   初始值 GL_FLOAT
stride

    Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.

数组中每个顶点间的间隔,步长(字节位移)。取值若为0,表示数组是连续的   初始值为0.
pointer

    Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.

指定指向数组中第一个顶点的第一个坐标的指针。初始值为 0。

以上是关于openGL之API学习(一六九)glVertexPointer的主要内容,如果未能解决你的问题,请参考以下文章

openGL之API学习(一六八)gl_SecondaryColor

openGL之API学习(一六六)glVertexAttrib*函数

openGL之API学习(一六七)默认着色器 顶点属性索引 别名索引

C++学习(三一二)glVertexAttribPointer和glVertexAttrib*的关系

API OpenGL输出土元函数及相关子程序

尝试使用 glVertex2i 在 openGL 中绘制点时使用 int 数组