七、OpenGL系统库和工具类

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系统库和工具类)