美文网首页
OpenGL渲染架构

OpenGL渲染架构

作者: 东旭39 | 来源:发表于2020-07-09 21:37 被阅读0次
    渲染架构图

    Client、Server

    • Client:它是指CPU上所执行的代码。比如,我们会用到OpenGL的API,C代码,C++代码等。
    • Server:它调用的是GPU芯片,OpenGL的API会不断的从client把顶点着色器和片元着色器传递到Server,不断的执行起来。

    Client是我们编写的程序,而Server是GPU厂商所提供的OpenGL的实现。

    client如何传递数据都server

    根据渲染架构图,可以通过Attributes、Uniforms、texture data 传递数据到server。

    • Attributes(属性)
      1.Attributes常为需要改变的数据,比如:颜色数据,顶点数据,纹理坐标,光照法线;

      1. 可以直接传递到顶点着色器,间接传递到片元着色器,不能为了将属性直接传递到片元着色器而通过uniform传递到片元着色器;
      2. 属性值可以是浮点数、整数、布尔数据。
    • Uniforms

      1. Uniforms值是比较统一批次的,不会发生太多改变;例如变换矩阵、颜色值等
      2. 可以直接传递到顶点着色器和片元着色器;
      3. uniforms可以是浮点数、整数、布尔数据。
    • texture data

      1. 在顶点着色器、片段着色器中都可以对纹理数据进行采样和筛选。
      2. 典型的应用场景:片段着色器对一个纹理值进行采样,然后在一个三角形表面应用渲染纹理数据。
      3. 纹理数据,不仅仅表现在图形,很多图形文件格式都是以无符号字节(每个颜色通道8位)形式对颜色分量进行存储的。

    输出数据

    • out是作为一个阶段着色器的输出定义的,后续阶段的着色器则作为输入定义。
      1. 输出数据可以简单的从一个阶段传递到下一个阶段,也可以用不同的方式插入。
      2. 客户端的代码接触不到这些内部变量我们的OpenGL开发暂时接触不到。

    相关文章

      网友评论

          本文标题:OpenGL渲染架构

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