openGL简明教程(一)---开始的开始,绘制一个三角形
- 因为课程原因我们要使用openGL,而且根据课程要求我们使用的是glut这个库,我翻阅了网上一些教程大都年代比较久远,而且排版很差。于是我打算自己以这些资料为蓝本出一个简明扼要的教程
- 第一步肯定是要配置环境,有还没有配置的请参照我的博文,配置一下openGL的glut环境
1.画一个三角形
- 不罗嗦我们直接上代码,在代码中讲解这个库的具体用法
- 下面这个代码便是绘制一个三角形的代码
#include <GL/glut.h> //库的头文件
void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT);//清除颜色缓冲区,大概类似于先清洗一下画板
glBegin(GL_TRIANGLES);//开始我们的绘图操作,
//函数里面的参数就是我们要绘制的图形的一些代码,之后教程会介绍
//指定三角形三个顶点,很明显这个其实可以指定一个三维空间,
//因为我们目前画的是一个平面图形所以第三个参数为0
glVertex3f(-0.5, -0.5, 0.0);
glVertex3f(0.5, 0.0, 0.0);
glVertex3f(0.0, 0.5, 0.0);
glEnd();//结束绘图
glFlush();//强制刷新缓冲,保证绘图命令将被执行
}
int main(int argc, char** argv) {
//如果你没有看上面那个renderScene函数而是找到了主函数开始阅读的话,那么恭喜你你已经是一个老鸟了
//言归正传,我们接下来说一下这个库的具体使用
glutInit(&argc, argv);//初始化glut,看里面的参数&argc, argv你发现和main函数的参数是一致的,
//所以我们在书写main函数的时候要带着里面的参数。这条语句几乎每写一个glut的文件必用
glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);//定义显示方式,一般默认写这样就可以。
//你要是非得说自己生来不凡,那好满足你
/*指定颜色模式的预定义常量有:
1:GLUT_RGBA或者GLUT_RGB。指定一个RGBA窗口,这是一个默认的颜色模式。
2:GLUT_INDEX。指定颜色索引模式。
这个显示模式还允许你选择单缓冲区或双缓冲区窗口。
1:GLUT_SINGLE.单缓冲区窗口。
2:GLUT_BUFFER.双缓冲区窗口,这是产生流畅动画必须选的。
还可以指定更多,如果你想指定一组特殊的缓冲的话,用下面的变量:
1:GLUT_ACCUM.累积缓冲区。
2:GLUT_STENCIL.模板缓冲区。
3:GLUT_DEPTH.深度缓冲区。*/
glutInitWindowPosition(100, 100);//指定下窗口的显示位置,
//很简单指定(0,0)的话窗口就会显示在你屏幕的最左上角,这样说大家应该可以理解。
glutInitWindowSize(320, 320);//指定下窗口的大小
glutCreateWindow("openGL的helloword");//创建窗口,函数的参数是窗口的标题
glutDisplayFunc(renderScene);//当窗口需要被重绘时调用的函数的名称,,
//告诉GLUT使用我们指定的的函数来进行渲染。这个叫寄存回调,
//我的理解就是我们要告诉glut我们要使用我们指定的这个renderScene
//来进行画图操作让他执行renderScene将图形画出来,
//好了我们将目光转向renderScene函数
glutMainLoop();
}
- 代码运行效果