一.OpenGL 名词解析
1.图形API
OpenGL(Open Graphics Library)是⼀个跨编程语⾔言、跨平台的编程图形程序接⼝口,它将计算机的资源抽象称为⼀个OpenGL的对象,对这些资源的操作抽象为⼀个的OpenGL指令。
OpenGL ES(OpenGL for Embedded Systems)是OpenGL三维图形 API 的⼦子集,针对⼿手机、 PDA和游戏主机等嵌⼊入式设备⽽而设计,去除了了许多不不必要和性能较低的API接⼝口。
DirectX是由很多API组成的,DirectX并不不是⼀个单纯的图形API. 最重要的是DirectX是属于 Windows上⼀个多媒体处理理API。并不支持Windows以外的平台,所以不是跨平台框架, 按照性 质分类,可以分为四⼤大部分,显示部分、声⾳音部分、输⼊入部分和⽹网络部分。
Metal: Apple为游戏开发者推出了了新的平台技术Metal,该技术能够为 3D 图像提⾼高 10 倍的渲染性能。Metal是Apple为了了解决3D渲染⽽而推出的框架。
2.状态机
状态机是理论上的一种机器。状态机描述了⼀个对象在其⽣命周期内所经历的各种状态,状态间的转变,发⽣转变的动因,条件及转变中所执行的活动。
它的特点:
1.它有记忆的能力,能够记住自己当前的状态。
2.它可以接收输入,根据输入的内容和自己的状态,修改自己的状态,并且可以得到输出。
3.当它进入某个特殊的状态(停机状态)的时候,它不再接收输入,停止工作。
3.上下文(Context)
OpenGL指令执⾏的基础,是⼀个⾮常庞⼤的状态机。
4.渲染(Rendering)
将图形/图像数据转换成2D空间图像操作叫做渲染。
5.顶点数组(VertexArray)/ 顶点缓冲区(VertexBuffer)
顶点就是图形的顶点位置数据,顶点数组GPU的内存中。
顶点数据预先传入到GPU的显存当中。这部分的显存,就被称为顶点缓冲区。
6.管线
在OpenGL下渲染图形,就会有经历一个一个节点.⽽这样的操作可以理解为管线。
它是一个工具便于管理和使用各种矩阵。
7.着色器程序(Shader)
它是OpenGL封装好的一个函数,一个方法,一个程序。
常见的着色器有:
1.顶点着色器(VertexShader),一般用来处理图形每个顶点变换(旋转/平移/投影等)。
2.片元着色器 / 片段着色器(FragmentShader)/ 像素着⾊器 (PixelShader),一般⽤来处理图形中每个像素点颜色计算和填充。
3.几何着色器(GeometryShader),不常用。
4.曲面细分着色器(TessellationShader),不常用。
8.GLSL(OpenGL Shading Language)
GLSL着色语⾔是⽤来在OpenGL中着⾊编程的语⾔,是在图形卡的GPU上执⾏的。
9.光栅化(Rasterization)
光栅化就是把顶点数据转换为片元的过程。
该过程包含了两部分的⼯作:①决定窗⼝坐标中的哪些整型栅格区域被基本图元占⽤;②分配一个颜⾊值和⼀个深度值到各个区域。
10.纹理
纹理可以理解为图⽚。
11.混合(Blending)
颜⾊混合效果。
12.变换矩阵(Transformation)
例如图形想发⽣平移、缩放、旋转等变换,就需要使用变换矩阵。
13.投影矩阵(Projection)
⽤于将3D坐标转换为⼆维屏幕坐标,实际线条也将在二维坐标下进行绘制。