常见着色器
1、单元着色器
GLShaderManager::UserStockShader(GLT_SHADER_IDENTITY,GLfloat vColor[4]);
绘制默认OpenGL坐标系下的图形,图形片段都会以一种颜色填充。
2、平面着色器
GLShaderManager::UserStockShader(GLT_SHADER_FLAT,GLfloat mvp[16],GLfloat vColor[4]);
GLfloat mvp[16] 4*4 变换矩阵
绘制需要应用变换(如:模型,投影变化等)的图形时使用。
3、上色着色器
GLShaderManager::UserStockShader(GLT_SHADER_SHADED,GLfloat mvp[16]);
着色器使用在绘制需要变化的图形时,可以传入变换矩阵,颜色会平滑的插入到顶点之间
4、默认光源着色器
GLShaderManager::UserStockShader(GLT_SHADER_DEFAULT_LIGHT,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vColor[4]);
GLfloat mvMatrix[16] 4*4 模型矩阵
GLfloat pMatrix[16] 4*4 投影矩阵
着色器使用会产生阴影和光照效果。
5、点光源着色器
GLShaderManager::UserStockShader(GLT_SHADER_POINT_LIGHT_DIEF,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vLightPos[3],GLfloat vColor[4]);
GLfloat vLightPos[3] 点光源位置
GLfloat vColor[4]) 漫反射颜色值
着色器使用会产生阴影和光照效果。和默认光源着色器非常类似,区别是光源位置可能是某个特定位置。
6、纹理替换矩阵着色器
GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_REPLACE,GLfloat mvMatrix[16],GLint nTextureUnit);
GLint nTextureUnit) 纹理单元
着色器使用使用纹理的颜色来进行颜色填充,每个像素点的颜色都来自于纹理。
7、纹理调整着色器
GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_MODULATE,GLfloat mvMatrix[16],GLfloat vColor[4],GLint nTextureUnit);
着色器会将纹理进行颜色混合后填充到片段。
8、纹理光源着色器
GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_POINT_LIGHT_DIEF,G Lfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vLightPos[3],GLfloat vBaseColor[4],GLint nTextureUnit);
着⾊色器器将⼀一个纹理理通过漫反射照明计算进⾏行行调整(相乘).
这些着色器均属于固定管线着色器
基本图元
1、GL_POINTS
每个顶点在屏幕上都是单独点
2、GL_LINES
每一对顶点定义一个线段
3、GL_LINE_STRIP
从第一个顶点依次经过每一个后续顶点绘制的线条
4、GL_LINE_LOOP
和GL_LINE_STRIP相同,但是最后一个顶点和第⼀个顶点连接起来了。
5、GL_TRIANGLES
每三个顶点定义一个三角形
6、GL_TRIANGLE_STRIP
共⽤一个条带(strip)上的顶点的一组三角形
7、GL_TRIANGLE_FAN
以一个圆形为中心呈扇形排列,共用相邻顶点的一组三角形。
OpenGL的基本绘制单元是点,线,三角形,其他的图形结构都由它们组成。