美文网首页
OpenGL: 绘制三角形

OpenGL: 绘制三角形

作者: Neal_f | 来源:发表于2018-03-20 12:58 被阅读0次

    OpenGL绘制三角形

    先看效果


    D460E6C6-B854-48A9-9FF3-22D1B83510A3的副本.png
    1. 初步认识OpenGL框架

      GLShaderManager
      着色器管理器(shader Mananger)类,能够进行一些初步䄦基本的渲染操作。

      GLTools
      OpenGL的一个工具类。

      GLUT
      是一个处理OpenGL程式的工具库

    GLBatch
    简单的批次容器,是GLTools的一个简单的容器类。

    1. 绘制图形流程分析

    分析main.cpp

    int main(int argc,char *argv[])
    {
    //1.设置当前工作目录
    gltSetWorkingDirectory(argv[0]);
    
    //初始化glut库
    glutInit(&argc, argv);
    
    //窗口显示模式
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH|GLUT_STENCIL);
    
    //GLUT窗口大小、窗口标题
    glutInitWindowSize(800, 600);
    glutCreateWindow("Triangle");
    
    //注册重塑函数
    glutReshapeFunc(changeSize);
    //注册显示函数
    glutDisplayFunc(RenderScene);
    //特殊按键回调
    glutSpecialFunc(SpecialKeys);  
    
    GLenum status = glewInit();
    if (GLEW_OK != status) {
        
        printf("GLEW Error:%s\n",glewGetErrorString(status));
        return 1;
        
    } 
    
    //设置我们的渲染环境
    setupRC();
    glutMainLoop();  
    return 0;       
    }
    

    设置渲染环境

    void setupRC()
    {
        glClearColor(0.98f, 0.40f, 0.7f, 1);
        //初始化
        shaderManager.InitializeStockShaders();
        //指定顶点
        GLfloat vVerts[] = {
            -0.5f,0.0f,0.0f,
            0.5f,0.0f,0.0f,
            0.0f,0.5f,0.0f
        };
        triangleBatch.Begin(GL_TRIANGLES, 3);
        triangleBatch.CopyVertexData3f(vVerts);
        triangleBatch.End(); 
    }
    
    

    在窗口大小改变时,接收新的宽度&高度

    void changeSize(int w,int h)
    {
        glViewport(0, 0, w, h);
    }
    

    渲染图形

    void RenderScene(void)
    {
    
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);
        
        
        //设置一组浮点数来表示红色
        GLfloat vRed[] = {1.0,0.0,0.0,1.0f};
     shaderManager.UseStockShader(GLT_SHADER_IDENTITY,vRed);
    
        triangleBatch.Draw();
        glutSwapBuffers();
        
    }
    

    整体流程就是这样子的啦。

    GitHub地址:https://github.com/fzdfy/OpenGL_triangle

    相关文章

      网友评论

          本文标题:OpenGL: 绘制三角形

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