常用名词解释
OpenGL上下文(context)
- 在应用程序调用任何OpenGL指令之前,需先创建一个OpenGL的上下文contex。这个context是一个巨大的状态机,实现了对OpenGL的各个状态的记录,这也是OpenGL的指令执行基础;
OpenGL状态机
- 状态机是描述了一个对象在其生命周期所经历的各种状态、状态间的转变、发生转变的动因、条件以及转变过程中执行的活动。
- OpenGL可以记录自己的状态(如当前使用的颜色、是否混合了功能等);可以接收输入;可以进入停止状态并且不再接收输入,在退出程序前,OpenGL总会先停止工作。
渲染(Rendering)
- 即将图片/按钮/视频等,解压显示绘制到屏幕的过程。
顶点数组(VertextArray)
- 在调用绘制方法描绘OpenGL ES图元(点、线、三角形)时,直接由内存传入的顶点数据,即在提前就将数据存入到内存当中的。
顶点缓存区(VertexBuffer)
- 将顶点数据提前分配到显存,这个显存即为顶点缓冲区。
管线
- 在OpenGL下渲染图形过程中的一个一个节点,则可理解为管线。像流水线一般,每个任务流水线按先后顺序般执行任务。
固定管线/存储着色器
- 其存在早起的OpenGL版本中,封装了许多固定的着色程序块,且内置了包含光照、坐标转换、剪裁等诸多功能的固定Shader程序,以帮助开发者完成图形的渲染。
顶点着色器VertexShader
- 一般用来处理图形每个顶点变换——旋转、平移、投影等;它是OpenGL用于计算顶点属性的程序,它会按照顶点数据都会执行一次顶点着色器,这是一个并行过程,并且在顶点着色器运算过程中无法访问其他顶点的数据。
- 需要计算的顶点属性:顶点坐标转换、逐顶点光照运算等。顶点坐标由自身坐标系转换到归一化坐标系的运算。
片元着色器程序(FregmentShader)
- 一般用来处理图形中每个像素点颜色计算和填充,它是逐像素运算的程序,即每个像素都会执行一次片段着色器,且是并行执行。
GLSL(OpenGL Shading Language)
- OpenGL的着色语言是用来在OpenGL中着色编程的语言,也是开发人员编写的短小自定义程序。它们是在GPU(Graphic Processor Unit图形处理单元)上执行的,代替了固定的渲染管线一部分,使得渲染管线中的不同层次具有可编程性。如:试图转换、投影转换等。GLSL的着色器代码分成2个部分:Vertex Shader(顶点着色器)和Fragment(片元着色器)。
光栅化(Rasterizaion)
- 是把顶点数据转换为片元的过程,其作用是将图转化为一个个栅格组成的图形,特点是每个元素对应帧缓冲区的一个像素。
- 它是将几何图元变为二维图像的过程;分为两步:1.决定窗口坐标中那些整型栅格区域被基本图元占用;2.分配一个颜色值和一个深度值到各个区域。光栅化过程中产生的是片元。
- 把物体的数学描述以及与物体相关颜色信息转换为屏幕上用于对应位置的像素及用户填充像素的颜色,这个过程称为光栅化,这也是一个将模拟信号转化为离散信号的过程。
纹理
- 纹理可理解为图片。在渲染图形时需在编码处填充图片,为了使得场景更加逼真,这里使用的图片即为纹理;但在OpenGL中,习惯叫纹理而不是图片。
着色器渲染流程

网友评论