状态机
状态机并不是一个机器,它是一个对象在其生命周期内经历的各种状态、状态之间的转换、转换的原因、动态、执行结果等,因此它具有记忆功能、输入输出功能、开机停机功能。
OpenGL的上下文(context)
- 应用程序在调用OpenGL指令之前需要创建OpenGL的上下文,context其实是个非常庞大的状态机,它包含了OpenGL里面的各种状态
- 由于context是个庞大的状态机,所以切换上下文会造成非常大的消耗,因此不同的上下文之间可以共享纹理、缓存等资源
渲染
将图形或图像(UIView)绘制到屏幕的过程叫做渲染。
顶点数组
存储顶点信息的数组,存储在内存中。当为了更高的效率提前分配一部分显存来存储顶点数组,这部分显存叫顶点缓冲区
管线
即流水线,比如工厂生产肥皂,由原料-->肥皂水-->模具-->肥皂块,比如渲染一张图片到屏幕的过程也是一个管线
固定管线
流水线过程中模具是固定即是固定管线,比如生产方块肥皂的管线,它的模具是肥皂是方块的,不是长方形、三角形等其他形状的,这就是固定管线,也可理解成模具是固定的。注意的是固定管线是封装好的,不可以改变的
可编程管线
流水线中模具是可以改变的,比如一次网络请求中参数中的参数
shader着色器
shader段代码由GPU执行,着色器函数又CPU执行
固定着色器
由Apple提供的API,调用参数由OpenGL来提供
自定义着色器
自己基于GLSL语法自定义的代码段
顶点着色器
用来处理顶点相关代码的着色器
- 确定位置
- 缩放、平移、旋转等
- 显示3D图形(坐标转换)
片元着色器
用来处理每个像素点的颜色、饱和度、透明度等
GLSL
OpenGL的着色语言(OpenGL Shading Language)用来在OpenGL中着色编程的语言,即我们自定义的程序。
光栅化
就是把顶点数据片元化的过程,也就是把几何图元变成二维图像的过程,它包括两个部分,一个是确定栅格的位置(顶点数组确定),二是给确定的栅格填充颜色(顶点着色器实现)
纹理
就是图片,在OpenGL中我们习惯称为图片
混合
将多个颜色的像素合并在一起就是混合
变换矩阵
图形的位移、缩放、旋转等需要用变换矩阵
投影矩阵
将3D坐标转成2D二维坐标需要用投影矩阵