使用OpenGL绘画一个三角形

    技术2022-07-14  73

    先看一下绘制三角形的思维导图,流程是从上至下依次执行。 废话不多说,直接上代码。使用的语言是C++

    int main(int argc,char *argv[]) { //初始化GLUT库,这个函数只是传说命令参数并且初始化glut库 glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH|GLUT_STENCIL); //GLUT窗口大小、窗口标题 glutInitWindowSize(800, 600); glutCreateWindow("Triangle"); //注册重塑函数 glutReshapeFunc(changeSize); //注册显示函数 glutDisplayFunc(RenderScene); GLenum status = glewInit(); if (GLEW_OK != status) { printf("GLEW Error:%s\n",glewGetErrorString(status)); return 1; } setupRC(); glutMainLoop(); return 0; } void changeSize(int w,int h) { glViewport(0, 0, w, h); } void setupRC() { //设置清屏颜色(背景颜色) glClearColor(1.0f, 0.3f, 0.7f, 1); shaderManager.InitializeStockShaders(); //指定顶点 GLfloat vVerts[] = { -0.6f,0.0f,0.0f, 0.4f,0.0f,0.0f, 0.0f,0.5f,0.0f }; batch.Begin(GL_TRIANGLES, 3); batch.CopyVertexData3f(vVerts); batch.End(); } void RenderScene(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT); GLfloat vRed[] = {1.0,0.0,1.0,1f}; //单元着色器 shaderManager.UseStockShader(GLT_SHADER_IDENTITY,vRed); //绘制 batch.Draw(); //交换缓冲区 glutSwapBuffers(); }
    Processed: 0.010, SQL: 9