opengl 设置颜色
时间: 2023-07-04 11:06:42 浏览: 42
在 OpenGL 中设置颜色有多种方法,以下是其中两种:
1. 使用 glColor* 函数设置当前颜色
glColor* 函数可以设置当前的颜色,从而在绘制图形时使用该颜色。* 可以是以下任意一种:3f、4f、3fv、4fv、3d、4d、3dv、4dv。例如,glColor3f(1.0f, 0.0f, 0.0f) 可以设置当前颜色为红色。
示例代码:
```c++
glColor3f(1.0f, 0.0f, 0.0f); // 设置当前颜色为红色
glBegin(GL_TRIANGLES);
glVertex3f(-0.5f, -0.5f, 0.0f);
glVertex3f(0.5f, -0.5f, 0.0f);
glVertex3f(0.0f, 0.5f, 0.0f);
glEnd();
```
2. 在顶点数据中指定颜色
可以在顶点数据中指定每个顶点的颜色,然后在绘制图形时使用这些颜色。在这种情况下,需要使用 glVertex* 和 glColor* 函数分别指定顶点的位置和颜色。
示例代码:
```c++
GLfloat vertices[] = {
-0.5f, -0.5f, 0.0f, // 左下角顶点
1.0f, 0.0f, 0.0f, // 红色
0.5f, -0.5f, 0.0f, // 右下角顶点
0.0f, 1.0f, 0.0f, // 绿色
0.0f, 0.5f, 0.0f, // 中间顶点
0.0f, 0.0f, 1.0f // 蓝色
};
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glVertexPointer(3, GL_FLOAT, 6 * sizeof(GLfloat), vertices);
glColorPointer(3, GL_FLOAT, 6 * sizeof(GLfloat), vertices + 3);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
```
这里使用了 glVertexPointer 和 glColorPointer 函数来指定顶点的位置和颜色。在绘制时,使用 glDrawArrays 函数来绘制三角形。注意,需要使用 glEnableClientState 和 glDisableClientState 函数来启用和禁用顶点数组。