OpenGL 的渲染架构

392 阅读1分钟

OpenGL 的渲染架构图

先对上图中的几个有迷惑性的名词做一下解释:

客户端:指的是运行在 CPU 上的程序

服务端:指的是运行在 GPU 上的程序

从上图可以看到,服务端可以从客户端获取三种类的数据:AttributeUniformsTuxture。下面就这三种数据做一个简要的说明。

Attribute

Attribute 类型的数据只能在顶底着色器使用,用来存储一些顶点数据,如:顶点坐标、法线、纹理坐标、顶点颜色等。

Uniforms

Uniforms 是一种GLSL变量。它是全局的(顶点着色器和片元着色器都能够访问Uniform变量),并且只需要被设定一次。Uniforms 的值可以被顶点着色器和片元着色器使用,但是它不能被任何一个着色器修改。一般用来存储转换矩阵、光照参数或者颜色等信息。

Tuxture

Tuxture 类型的数据可以被顶点着色器和片元着色器使用。用来存储纹理数据。

也可以从着色器的角度来解读:

顶点着色器可以接收接收Attribute、Uniforms、Tuxture三个类型的值。

片元着色器可以接收Uniforms、Tuxture两个个类型的值。

以上是我对OpenGL 的渲染架构的理解和总结,如有疏漏,请留言交流。