OpenGL渲染架构图
- OpenGL渲染架构图分为客户端和服务端两部分
- 客户端是Application程序和OpenGL的API,在CPU中执行,负责传递Attributes、Uniforms、Texture Data。
- 服务端负责接收客户端数据进行渲染,在GPU中执行。
- Attributes变量是只能在vertex shader(顶点着色器)中使用的变量,一般用来表示顶点的坐标,法线,顶点的颜色等。
- Uniforms就像是C语言中的常量,Shader只能用不能修改,一般用来表示变化矩阵、材质、光照参数、颜色信息等。
- Texture Data(纹理) 现实生活中,纹理最通常的作用是装饰我们的物体模型,它就像是贴纸一样贴在物体表面,使得物体表面拥有图案。但实际上在OpenGL中,纹理的作用不仅限于此,它可以用来存储大量的数据,一个典型的例子就是利用纹理存储地形信息。
- Primitive Assembly(图元装配)把顶点着色器输出的顶点组合成点,线段或者三角形。
- 光栅化 图元装配之后的图形映射到屏幕上,确定在屏幕上每个像素点的位置。
- Vertex Shader可以接收Attributes、Uniforms、Texture Data。
- Fragment Shader(片元着色器)只可以接收Uniforms、Texture Data,不能直接接收Attributes。