gldrawarrays使用方式
时间: 2023-06-25 21:04:56 浏览: 45
`glDrawArrays` 是 OpenGL 中的一个函数,用于绘制基于顶点数组的图形。它的使用方式如下:
```c++
void glDrawArrays(GLenum mode, GLint first, GLsizei count);
```
其中,`mode` 表示绘制的图元类型,常用的有 `GL_POINTS`、`GL_LINES`、`GL_TRIANGLES` 等等;`first` 表示要绘制的顶点数组中的起始位置;`count` 表示要绘制的顶点数量。
在调用 `glDrawArrays` 之前,需要先通过 `glVertexAttribPointer` 函数告诉 OpenGL 如何解释顶点数组中的数据。例如,下面的代码片段展示了如何使用 `glDrawArrays` 绘制一组三角形:
```c++
// 顶点数组
GLfloat vertices[] = {
// 第一个三角形
0.5f, 0.5f, 0.0f, // 右上角
0.5f, -0.5f, 0.0f, // 右下角
-0.5f, 0.5f, 0.0f, // 左上角
// 第二个三角形
0.5f, -0.5f, 0.0f, // 右下角
-0.5f,-0.5f, 0.0f, // 左下角
-0.5f, 0.5f, 0.0f // 左上角
};
// 设置顶点属性指针
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(GLfloat), (void*)0);
glEnableVertexAttribArray(0);
// 绘制三角形
glDrawArrays(GL_TRIANGLES, 0, 6);
```
在这个例子中,我们定义了一个包含 6 个顶点的数组 `vertices`,前三个顶点组成了一个三角形,后三个顶点组成了另一个三角形。我们先通过 `glVertexAttribPointer` 函数告诉 OpenGL 如何解释这个顶点数组,然后启用顶点属性数组,并最终调用 `glDrawArrays` 绘制两个三角形。