OpenGL 渲染

OpenGL 渲染

OpenGL 渲染架构

OpenGL 渲染_第1张图片
2339413-74fccbac9e1e8499.png
  • client 代表就是客户端类似于 iOS/安卓
  • server 代表后台服务器
  • Vertex Shader(顶点着色器) 和 Fragment Shader(片段着色器) 我们编码程序主要针对这两个着色器
  • 顶点着色器-->处理从客户机输入的数据、应用变换、进行其他的类型的数学运算来计算关照效果、位移、颜色值等等, Attributes(传一些属性值就像给控件添加属性一样) 只能作用于顶点着色器 不能作用于偏远着色器。
  • Uniform值可以作用于顶点和片元着色器, 一般固定值, 例如视频着色 YUV 通过固定的算法及转换矩阵转成 RGB

存储着色器:

  • 定义一个着色器管理对象(GLShaderManager)

着色器初始化:shaderManager.InitializeStockShaders();

  • 单元着色器 GLShaderManager::UserStockShader(GLT_ATTRIBUTE_VERTEX,GLfloat vColor[4]);
    参数:1.存储着色器种类:
    2.存储着色器颜色

  • 平面着色器GLShaderManager::UserStockShader(GLT_SHADER_FLAT,GLfloat mvp[16],GLfloat vColor[4]);
    参数:1.平面着色器
    2.允许变化的4*4矩阵
    3.颜色

  • 上色着色器(平滑着色)GLShaderManager::UserStockShader(GLT_SHADER_SHADED,GLfloat mvp[16]);
    参数:1.存储着色器顶点分量
    2.存储着色器颜色分量

  • 默认光源着色器(平行光/太阳光)GLShaderManager::UserStockShader(GLT_SHADER_DEFAULT_LIGHT,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vColor[4]);
    参数:1.默认光源着色器
    2.模型视图矩阵
    3.投影矩阵
    4.颜色值

  • 点光源着色器GLShaderManager::UserStockShader(GLT_SHADER_POINT_LIGHT_DIEF,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vLightPos[3],GLfloat vColor[4]);
    参数 1.点光源着色器
    2.模型视图矩阵
    3.投影矩阵
    4.视点坐标光源位置
    5.颜色值

  • 纹理替换矩阵着色器GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_REPLACE,GLfloat mvMatrix[16],GLint nTextureUnit);
    参数 1.存储着色器种类-纹理替换矩阵着色器
    2.模型 4*4 矩阵
    3.纹理单元

  • 纹理调整着色器GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_MODULATE,GLfloat mvMatrix[16],GLfloat vColor[4],GLint nTextureUnit);
    参数 1.存储着色器种类-纹理调整着色器
    2.模型 4*4 矩阵
    3.颜色值
    4.纹理单元

  • 纹理光源着色器GLShaderManager::UserStockShader(GLT_SHADER_TEXTURE_POINT_LIGHT_DIEF,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vLightPos[3],GLfloat vBaseColor[4],GLint nTextureUnit);
    参数 1.纹理光源着色器
    2.投影矩阵
    3.视觉空间中的光源位置
    4.几何图形的基本色
    5.将要使用的纹理单元

你可能感兴趣的:(OpenGL 渲染)