1.系统库
![](https://img.haomeiwen.com/i2912639/4017ae347f2b9a40.png)
现在比较流行的搭配主要是 freeglut + glew和glfw + glew。
在macOS中,一般使用glut + glew来进行开发。
2. GLShaderManager
着⾊器管理器类,用来管理固定着色器。
初始化固定着色器
GLShaderManager shaderManager;
shaderManager.InitializeStockShaders();
使用指定类型的着色器,并传递参数
shaderManager.UseStockShader(GLT_STOCK_SHADER nShaderID, Params);
![](https://img.haomeiwen.com/i2912639/8d19ec25ac63968f.png)
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);
网友评论