美文网首页
OpenGL固定着色器练习案例:正方形移动

OpenGL固定着色器练习案例:正方形移动

作者: FireStroy | 来源:发表于2020-09-20 09:47 被阅读0次

前置了解
OpenGL基础知识了解

使用固定着色器程序绘制正方形并且移动

前置代码已经环境
MacOs下OpenGL环境准备和初次绘制绘制

在OpenGL中 只有点、线、三角形。因此绘制一个正方形需要两个三角来合成,需要使用六个顶点坐标,但是在图元装配的时候我们可以指定图元的连接方式。使用三角形扇使四个顶点相连形成一个正方形

GLfloat blockSize = 0.25f;
//正方形的4个点坐标
GLfloat vVerts[] = {
        -blockSize,-blockSize,0.0f,
        blockSize,-blockSize,0.0f,
        blockSize,blockSize,0.0f,
        -blockSize,blockSize,0.0f
};

void setupRC()
{
    //设置清屏颜色(背景颜色)
    glClearColor(0.98f, 0.40f, 0.7f, 1);
    shaderManager.InitializeStockShaders();
    //GL_TRIANGLE_FAN ,4个顶点 如果使用三角形 则需要6个顶点。
    triangleBatch.Begin(GL_TRIANGLE_FAN, 4);
    triangleBatch.CopyVertexData3f(vVerts);
    triangleBatch.End();
}

由于使用的是固定着色器程序shaderManager.UseStockShader(GLT_SHADER_IDENTITY,vRed);,因此不需要我们自己编写顶点着色器程序。使用GLBatch triangleBatch;这个类来接收顶点坐标。

准备好顶点数据,并且设置好固定着色器程序后就可以开始渲染正方形了。

    triangleBatch.Draw();
    //在开始的设置openGL 窗口的时候,我们指定要一个双缓冲区的渲染环境。这就意味着将在后台缓冲区进行渲染,渲染结束后交换给前台。这种方式可以防止观察者看到可能伴随着动画帧与动画帧之间的闪烁的渲染过程。缓冲区交换平台将以平台特定的方式进行。
    //将后台缓冲区进行渲染,然后结束后交换给前台
    glutSwapBuffers();

完整代码示例:
OpenGL示例:正方形绘制

相关文章

网友评论

      本文标题:OpenGL固定着色器练习案例:正方形移动

      本文链接:https://www.haomeiwen.com/subject/qtsuyktx.html