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

简介: 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();
}
  • 代码运行效果
  • image-20210916220414307
相关文章
|
存储 API
学习OpenGL ES之绘制三角形
OpenGL入门经典案例,绘制一个三角形
学习OpenGL ES之绘制三角形
|
存储 索引
OpenGL学习笔记(八):进一步理解VAO、VBO和SHADER,并使用VAO、VBO和SHADER绘制一个三角形 下
OpenGL学习笔记(八):进一步理解VAO、VBO和SHADER,并使用VAO、VBO和SHADER绘制一个三角形
OpenGL学习笔记(八):进一步理解VAO、VBO和SHADER,并使用VAO、VBO和SHADER绘制一个三角形 下
|
存储 C语言 C++
OpenGL学习笔记(八):进一步理解VAO、VBO和SHADER,并使用VAO、VBO和SHADER绘制一个三角形 上
OpenGL学习笔记(八):进一步理解VAO、VBO和SHADER,并使用VAO、VBO和SHADER绘制一个三角形
OpenGL学习笔记(八):进一步理解VAO、VBO和SHADER,并使用VAO、VBO和SHADER绘制一个三角形 上
|
缓存 容器
案例 01、OpenGL入门--绘制三角形
OpenGL中三角形的绘制,就类似于学习编程时的Hello world,是一个入门级的使用,重点在于理解图形是如何绘制的
232 0
案例 01、OpenGL入门--绘制三角形
【OpenGL】十五、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_FAN 三角形扇 )(一)
【OpenGL】十五、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_FAN 三角形扇 )(一)
229 0
【OpenGL】十五、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_FAN 三角形扇 )(一)
【OpenGL】十五、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_FAN 三角形扇 )(二)
【OpenGL】十五、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_FAN 三角形扇 )(二)
188 0
【OpenGL】十五、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_FAN 三角形扇 )(二)
|
机器学习/深度学习 索引
【OpenGL】十四、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_STRIP 三角形 | GL_TRIANGLE_STRIP 三角形绘制分析 )
【OpenGL】十四、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_STRIP 三角形 | GL_TRIANGLE_STRIP 三角形绘制分析 )
234 0
【OpenGL】十四、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_STRIP 三角形 | GL_TRIANGLE_STRIP 三角形绘制分析 )
【OpenGL】十三、OpenGL 绘制三角形 ( 绘制单个三角形 | 三角形绘制顺序 | 绘制多个三角形 )(二)
【OpenGL】十三、OpenGL 绘制三角形 ( 绘制单个三角形 | 三角形绘制顺序 | 绘制多个三角形 )(二)
109 0
【OpenGL】十三、OpenGL 绘制三角形 ( 绘制单个三角形 | 三角形绘制顺序 | 绘制多个三角形 )(二)
【OpenGL】十三、OpenGL 绘制三角形 ( 绘制单个三角形 | 三角形绘制顺序 | 绘制多个三角形 )(一)
【OpenGL】十三、OpenGL 绘制三角形 ( 绘制单个三角形 | 三角形绘制顺序 | 绘制多个三角形 )(一)
201 0
【OpenGL】十三、OpenGL 绘制三角形 ( 绘制单个三角形 | 三角形绘制顺序 | 绘制多个三角形 )(一)
|
API
【OpenGL ES】OpenGL ES 2.0 -- 制作 3D 彩色旋转三角形 - 顶点着色器 片元着色器 使用详解(三)
【OpenGL ES】OpenGL ES 2.0 -- 制作 3D 彩色旋转三角形 - 顶点着色器 片元着色器 使用详解(三)
196 0