美文网首页
OpenGL 渲染

OpenGL 渲染

作者: _君莫笑_ | 来源:发表于2019-05-15 14:29 被阅读0次

    OpenGL 渲染

    OpenGL 渲染架构

    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 渲染

          本文链接:https://www.haomeiwen.com/subject/ghauaqtx.html