OpenGL入门(三) -- OpenGL 渲染架构以及数据传递

524 阅读1分钟

OpenGL渲染架构

OpenGL渲染架构如图所示:

主要分为两个模块:

  • Client(客户端):是指常见的iOS代码OpenGL API,这部分在CPU中运行
  • Server(服务端)OpenGL底层渲染处理,在GPU中运行

客户端通过iOS代码调用OpenGL API方法,将图形渲染的相关数据通过通道传递到服务器中的顶点着色器片元着色器,交由GPU处理。

服务器通过从客户端通道接收到的传递的数据,交给相应的着色器渲染处理,并将最终结果渲染到屏幕上

OpenGL数据传递通道

从示意图上可以看出,从客户端到服务端数据传递有三种形式:

  • Attributes:只能传输到顶点着色器,参数一般为:经常发生变动的数据(比如:纹理坐标、光照法线、顶点坐标、颜色等)
  • Uniforms:可以传输到顶点着色器片元着色器,参数一般为:不经常发生变化的数据,比较统一的批次数据
  • Texture Data:可以传输到顶点着色器片元着色器,一般传输纹理数据,顶点着色器主要是处理顶点数据的,我们将纹理数据传到顶点着色器并没有多大的意义。而纹理的处理主要是在片元着色器中进行的。