[OpenGL] - 图元

1.存储着色器 GLShaderMananger

1.1 单位着色器

GLShaderManager::UserStockShader(GLT_ATTRIBUTE_VERTEX,GLfloat vColor[4]);

1.2 平面着色器

/*
参数2:模型视图投影矩阵
*/
GLShaderManager::UserStockShader(GLT_SHADER_FLAT,GLfloat mvp[16],GLfloat vColor[4]);

1.3 上色着色器

GLShaderManager::UserStockShader(GLT_SHADER_SHADED,GLfloat mvp[16]);

1.4 默认光源着色器

/*
参数2:模型视图矩阵
参数3:投影矩阵
*/
GLShaderManager::UserStockShader(GLT_SHADER_DEFAULT_LIGHT,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vColor[4]);

1.5 点光源着色器

GLShaderManager::UserStockShader(GLT_SHADER_DEFAULT_LIGHT_DIEF,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vLightPos[3],GLfloat vColor[4]);

1.6 纹理替换矩阵

GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_REPLACE,GLfloat mvMatrix[16],GLint nTextureUnit);

1.7 纹理调整着色器

GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_MODULATE,GLfloat mvMatrix[16],GLfloat vColor[4],GLint nTextureUnit);

1.8 纹理光源着色器

GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_POINT_LIGHT_DIEF,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vLightPos[3],GLfloat vBaseColor[4],GLint nTextureUnit);

2.OpenGL图元

2.1 点

2.2 线


image.png

2.3 线带


image.png

2.4 线环


image.png

2.5 三角形


image.png

2.6 三角形金字塔

//通过三角形创建金字塔
    GLfloat vPyramid[12][3] = {
        -2.0f, 0.0f, -2.0f,
        2.0f, 0.0f, -2.0f,
        0.0f, 4.0f, 0.0f,
        
        2.0f, 0.0f, -2.0f,
        2.0f, 0.0f, 2.0f,
        0.0f, 4.0f, 0.0f,
        
        2.0f, 0.0f, 2.0f,
        -2.0f, 0.0f, 2.0f,
        0.0f, 4.0f, 0.0f,
        
        -2.0f, 0.0f, 2.0f,
        -2.0f, 0.0f, -2.0f,
        0.0f, 4.0f, 0.0f};

2.7 三角形带


image.png

2.8 三角形扇


image.png
  1. 通过GLBatch帮助类定义图形
/*
批次类开始
参数1:图元类型
参数2:顶点数量
*/
void GLBatch::Begin(GLenum primitive, GLuint nVerts, GLuint nTextureUnits = 0);
/*
复制顶点到批处理中
*/
void GLBatch::CopyVertexData3f(M3DVector3f *vVerts);
/*
批次类结束
*/
void GLBatch::End(void);

你可能感兴趣的:([OpenGL] - 图元)