欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【OpenGL】绘制三角形

程序员文章站 2022-04-01 12:18:06
...

绘制三个点

上一节我们已经成功绘制出了一个点,那如何绘制三个点呢?很简单,给 VBO 填充数据时填充三个点的数据

void init()
{
    GLuint VBO;
    glGenBuffers(1, &VBO);
    glBindBuffer(GL_ARRAY_BUFFER, VBO);

    M3DVector3f vertices[3];
    vertices[0][0] = 0.3f;
    vertices[0][1] = 0.4f;
    vertices[0][2] = 0.0f;
    vertices[1][0] = -0.3f;
    vertices[1][1] = 0.4f;
    vertices[1][2] = 0.0f;
    vertices[2][0] = 0.0f;
    vertices[2][1] = 0.0f;
    vertices[2][2] = 0.0f;
    glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
}

然后还要修改绘制函数的参数

void renderPerFrame()
{
    glClear(GL_COLOR_BUFFER_BIT);

    glEnableVertexAttribArray(0);
    glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
    glDrawArrays(GL_POINTS, 0, 3);
    glDisableVertexAttribArray(0);

    glutSwapBuffers();
}

glDrawArrays 的第一个参数指定要绘制的图形类型,第二个参数指定从第几个数据开始,第三个参数指定数据长度。这里要绘制三个点,所以指定数据长度为 3 即可。

【OpenGL】绘制三角形

绘制三角形

我们已经成功绘制出了三个点,那绘制一个三角形就很简单了,只需要修改绘制函数的第一个参数,即绘制图片的类型为 triangle

glDrawArrays(GL_TRIANGLES, 0, 3);

【OpenGL】绘制三角形

相关标签: opengl 三角形