美文网首页
第三弹 OPenGL 渲染流程图解析

第三弹 OPenGL 渲染流程图解析

作者: Mr_Lxh | 来源:发表于2019-05-15 15:08 被阅读0次

    OpenGL 渲染流程图解析

    OpenGL渲染架构图

    如果,我们想要渲染一个三角形,具体的操作流程是什么呢?如下图:

    渲染流程图.jpg

    OpenGL 渲染流程分为两个端。一个叫客户端(Client)一个叫服务端(Server)。

    客户端(Client):指的是CPU上存储的一些代码。比如说OpenGL API、C/C++ 的一些代码
    服务端(Server): 服务端为GPU硬件部分,主要由Vertex Shader、Primitive Assembly、Fragment Shader组成。

    渲染过程中,客户端会不断的将数据块和命令块组合在一起并送入缓冲区,然后缓冲区会发送到服务端执行

    OpenGL 数据传递的三种方式

    attribute(属性)

    就是对⼀个顶点都要作出改变的数据元素。实际上,顶点位置本身就是一个属性。属性可以是浮点类型、整型、布尔类型等。

    1、属性总是以思维向量的形式进行内部存储
    2、属性包括纹理坐标、颜色值、光照计算的法线、纹理坐标等
    3、属性会从客户端内存中复制存储在图形硬件中的一个缓冲区上,供顶点着色器使用。
    4、属性不能直接作用于片元着色器。但可以通过顶点着色器进行图元装配后传递给片元着色器

    Uniforms(统一值)

    Uniform 是从CPU向GPU的着色器发送数据的一种方式

    1、Uniform 是全局的。全局意味着uniform变量在每个着色器着色器程序对象中都是独一无二的。
    2、uniform 在本质上像属性一样,可以是浮点型、整数或布尔型。不同的是,uniform 可以被着色器程序的任意着色器在任意阶段访问。
    3、uniform会一直保存它们的数据,直到它们呗重置或更新。
    4、uniform 变量在每个批次改变一次,而不是每个顶点改变一次

    Texture Data(纹理数据)

    任何大型浮点数据块(例消耗资源很大的函数的大型查询表)都可以通过纹理数据传递给着色器(纹理数据 将在以后文章详细讲解)

    相关文章

      网友评论

          本文标题:第三弹 OPenGL 渲染流程图解析

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