openGL简明教程(一)---开始的开始,绘制一个三角形

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();
}
  • 代码运行效果
  • openGL简明教程(一)---开始的开始,绘制一个三角形
上一篇:深入理解Java内存模型(四)—— volatile


下一篇:《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之64---BREW 应用的交叉编译