美文网首页
七、OpenGL系统库和工具类

七、OpenGL系统库和工具类

作者: 东篱采桑人 | 来源:发表于2020-07-10 19:04 被阅读0次
    1.系统库

    现在比较流行的搭配主要是 freeglut + glew和glfw + glew。
    在macOS中,一般使用glut + glew来进行开发。

    2. GLShaderManager

    着⾊器管理器类,用来管理固定着色器。

    初始化固定着色器
    GLShaderManager shaderManager;
    shaderManager.InitializeStockShaders();
    
    使用指定类型的着色器,并传递参数
    shaderManager.UseStockShader(GLT_STOCK_SHADER nShaderID,  Params);
    
    参数类型

    3. GLBatch

    在调用绘制方法时,顶点数据可以由内存传入,然后传给GPU绘制。为了更高性能的绘制,一般会提前分配一块GPU显存来缓存这些顶点数据,这部分显存称为顶点缓存区。GLBatch就是用来将这些数据批次保存在显存中,可以处理顶点、光照、纹理、颜色等数据。

    void GLBatch::Begain(GLeunm primitive,GLuint nVerts,GLuint nTexttureUnints = 0);
    参数1:图元 
    参数2:顶点数 
    参数3:⼀组或者2组纹理坐标(可选)
    
    复制顶点数据(⼀个由3分量x,y,z顶点组成的数组) 
    void GLBatch::CopyVerterxData3f(GLfloat *vVerts);
    
    复制表⾯法线数据 
    void GLBatch::CopyNormalDataf(GLfloat *vNorms);
    
    复制颜⾊数据 
    void GLBatch::CopyColorData4f(GLfloat *vColors);
    
    复制纹理坐标数据 
    void GLBatch::CopyTexCoordData2f(GLFloat *vTextCoords, GLuint uiTextureLayer);
    
    结束数据复制 
    void GLBatch::End(void);
    
    绘制图形 
    void GLBatch::Draw(void);
    

    相关文章

      网友评论

          本文标题:七、OpenGL系统库和工具类

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