OpenGL渲染框架解析

OpenGL渲染框架如下图:

Client

我们把iOS的代码,OpenGL API 称为client

Server

我们把Open 的底层叫做Server

client和server中的Vertex Shader(顶点着色器)和Fragment Shader(片元着色器)是可以由程序员写代码操作的。

如何将client中的数据传入到server的顶点着色器和片元着色器

OpenGL提供了三个通道传输数据:Attributes、Uniforms和Texture Data

Attributes通道

只能传输数到顶点着色器,传输的数据类型如下:顶点数据(x,y,z,w(缩放因子))、投影矩阵、模型矩阵、纹理坐标。

其中,纹理坐标只是通过顶点着色器桥接给片元着色器,顶点着色器不会对纹理数据进行处理。

Uniforms通道

既可以传输数据到顶点着色器,也可以传输数据到片元着色器,主要传输一些常量,或不太可能变化的数据。如:时间截、变换矩阵、颜色值等等

Texture Data通道

主要传输纹理数据,既可以传到顶点着色器,也可以传到片元着色器,但是顶点着色器无法处理纹理数据,所以传了也没有多大意义

通过Attributes、Uniforms和Texture Data就可以实现client到server的数据传输了。

以上是 OpenGL渲染框架解析 的全部内容, 来源链接: utcz.com/p/30542.html

回到顶部