一、前置知识
OPenGL中上色分为:单调着色、平滑着色
- 单调着色:给四边形图上固定的一种颜色;
- 平滑着色:给三角形的三个顶点的不同颜色混合在一起,创建漂亮的色彩混合;
使用glColor3f(r, g, b)来设置当前画笔颜色
二、运行效果

三、具体代码
完整代码可参考:OPenGL笔记–创建一个OPenGL窗口
void GL_Test::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除屏幕和深度缓存
glLoadIdentity(); //重置当前的模型观察矩阵
glTranslatef(-1.5, 0.0, -6.0);
//开始绘制三角形
//-----------------------------------------
glBegin(GL_TRIANGLES);
glColor3f(1.0, 0.0, 0.0); //设置画笔颜色
glVertex3f(0.0, 1.0, 0.0); //上顶点
glColor3f(0.0, 1.0, 0.0); //设置画笔颜色
glVertex3f(-1.0, -1.0, 0.0); //左下顶点
glColor3f(0.0, 0.0, 1.0); //设置画笔颜色
glVertex3f(1.0, -1.0, 0.0); //右下顶点
glEnd();
//-----------------------------------------
//绘制三角形结束
//开始绘制正方形
//-----------------------------------------
glTranslatef(3.0, 0.0, 0.0);
glColor3f(0.5, 0.5, 1.0); //设置画笔颜色
glBegin(GL_QUADS);
glVertex3f(-1.0, 1.0, 0.0); //左上顶点
glVertex3f(1.0, 1.0, 0.0); //右上顶点
glVertex3f(1.0, -1.0, 0.0); //右下顶点
glVertex3f(-1.0, -1.0, 0.0); //左下顶点
glEnd();
//-----------------------------------------
//绘制正方形结束
}
在绘制三角形的时候,每个顶点前都设置了画笔颜色,所以三角形每个顶点的颜色会不一样,这就是平滑着色;
在绘制正方形的时候,只设置了一次画笔颜色,所以正方形就一种颜色,这就是单调着色;
也可以给正方形四个点设置:红、绿、蓝、黄,平滑着色;

void GL_Test::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除屏幕和深度缓存
glLoadIdentity(); //重置当前的模型观察矩阵
glTranslatef(-1.5, 0.0, -6.0);
//开始绘制三角形
//-----------------------------------------
glBegin(GL_TRIANGLES);
glColor3f(1.0, 0.0, 0.0);
glVertex3f(0.0, 1.0, 0.0); //上顶点
glColor3f(0.0, 1.0, 0.0);
glVertex3f(-1.0, -1.0, 0.0); //左下顶点
glColor3f(0.0, 0.0, 1.0);
glVertex3f(1.0, -1.0, 0.0); //右下顶点
glEnd();
//-----------------------------------------
//绘制三角形结束
//开始绘制正方形
//-----------------------------------------
glTranslatef(3.0, 0.0, 0.0);
glBegin(GL_QUADS);
glColor3f(1.0, 0.0, 0.0);
glVertex3f(-1.0, 1.0, 0.0); //左上顶点
glColor3f(0.0, 1.0, 0.0);
glVertex3f(1.0, 1.0, 0.0); //右上顶点
glColor3f(0.0, 0.0, 1.0);
glVertex3f(1.0, -1.0, 0.0); //右下顶点
glColor3f(1.0, 1.0, 0.0);
glVertex3f(-1.0, -1.0, 0.0); //左下顶点
glEnd();
//-----------------------------------------
//绘制正方形结束
}
本文介绍了OpenGL中的两种着色方法:单调着色和平滑着色。通过示例代码展示了如何使用glColor3f设置顶点颜色,实现不同效果。在三角形中每个顶点设置不同颜色,实现平滑着色;而在正方形中统一设置颜色,呈现单调着色。通过调整顶点颜色,可以创建出丰富的图形视觉效果。
3196

被折叠的 条评论
为什么被折叠?



