OpenGL专业名词
1.OpenGL初次认识
- OpenGL定义:
(Open Graphics Libray)是一个跨编程语言,跨平台的编程图形程序接口,它将计算机的资源抽象称为一个个OpenGL对象,对这些资源的抽象为一个个的OpenGL指令.
OpenGL又称为开放式图形库,OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。
- OpenGL ES定义:
(OpenGL for Embedded Systems)是OpenGL三角图形API的子集,
针对手机,PDA和游戏主机嵌入式设备而设计,去除了许多不必要和性能较低的API接口
- DirectX定义:
是由很多API组成的,DirctX并不是一个单纯的图形API.最重要的是DirectX是属于Windows上一个多媒体处理框架,并不支持Windows以外的平台,所以不是跨平台框架,按照性质分类,可以分为四大类,
显示部分,声音部分,输入部分和网络部分.
- Metal定义:
是Apple为游戏开发者推出了新的平台技术Metal.该技术能够为3D图像提稿10倍的渲染性能,Metal是Apple为了解决3D渲染而推出的框架
OpenGL/OpenGL ES/Metal 解决问题的本质就是利用GPU芯片高效渲染图形图像
2.iOS 中的渲染框架

-
iOS 的渲染框架依然符合渲染流水线的基本架构,具体的技术栈如上图所示。在硬件基础之上,iOS 中有 Core Graphics、Core Animation、Core Image、OpenGL 等多种软件框架来绘制内容,在 CPU 与 GPU 之间进行了更高层地封装。
-
但是有个问题,Display和GPU为什么是双向的希望各位简友可以解答一下
2.OpenGL深入了解
-
状态机
- 描述生命周期的各种状态
- 特定
- 它有记忆功能:能够记住自己当前的状态。
- 它可以接收输入:根据输入的内容和自己的状态,修改自己的状态,并且可以得到输出。当它进入某个特殊的状态如停机状态的时候,它不再接收输入,停止工作。
-
顶点数组
开发者通过设定的函数指针,调用绘制方法时,直接由内存传入顶点数据,此时这些数据称为顶点数组。 -
顶点缓存区
提前分配一块显存,将顶点数据预先传入到显存中。
-位图
亦称为点阵图像
或栅格图像
,是由称作像素(图片元素)的单个点组成的 -
着色器渲染过程
在渲染过程中,必须存储2种着色器,分别是顶点着色器,片元着色器。顶点着色器是第一个着色器,片元着色器是最后一个着色器。顶点着色器中处理顶点,片元着色器处理像素点颜色。

-
着色器程序Shader
就全面的将固定渲染管线架构变为了可编程渲染管线。因此,OpenGL在实际调用绘制函数之前,还需要指定一个由shader编译成的着色器程序。- 常用的着色器:
顶点着色器(VertexShader
)
片段着色器(FragmentShader
)/像素着色器(PixelShader
)
几何着色器(GeometryShader
)
曲面着色器(TessellationShader
)
- 常用的着色器:
-
管线
在OpenGL下渲染图形,节点按照一定顺序渲染。可以理解为流水先执行任务。
管线分类(固定管线和可编程管线
) -
顶点着色器(
VertexShader
)- 一般用来处理图形每个顶点(
变换/旋转/平移/投影
) - 顶点着色器是OpenGL中用于计算机点属性的程序
- 一般用来处理图形每个顶点(
-
片元着色器(
FragmentShader
)- 一般用来处理图形中每个像素点颜色计算和填充
- 片段着色器是OpenGL中用于计算片段(像素)颜色的程序,片段着色器是逐个像素运算的过程,也就是说每个像素会执行一次片段着色器,当然也是并行的
-
光栅化(
Rasterization
)
- 顶点数据转化为片元的过程,具有将图转化为一个个栅格组成的图像的作用,特点是每个元素对应帧缓存区的一像素。光栅化其实是一种几何图元转化为二维图像的过程。
- 把物体的数字描述以及物体相关的颜色信息转换为屏幕上用于对应位置的像素及填充像素的颜色,这个过程称为光栅化。这是一个模拟信号转化为离散信号的过程。 -
纹理
- 可以理解为图片,为了使得场景更加逼真,而这里使用的图片,更加常说的纹理
-
混合(
Blending
)- 通常是实现物体透明度(Transparency)的一种技术
-
变换矩阵(
Transformation
)- 用于将3D坐标转换为二维屏幕坐标,实际线条也将在二维坐标下进行绘制
-渲染上屏/交换缓冲区(SwapBuffer) - 渲染缓冲区:可以理解为系统资源(
比如窗口
) - 将图像直接渲染到窗口对应的渲染缓冲区
- 用于将3D坐标转换为二维屏幕坐标,实际线条也将在二维坐标下进行绘制