OpenGL常见的专有名词解释

407 阅读3分钟

状态机

状态机并不是一个机器,它是一个对象在其生命周期内经历的各种状态、状态之间的转换、转换的原因、动态、执行结果等,因此它具有记忆功能、输入输出功能、开机停机功能。

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二维坐标需要用投影矩阵

投影方式

正投影:所有的图形一律大小相同

透视投影:图形按照远近来区分,一般越远的图形越小

坐标系