OpenGL-对一些常见专业名词的理解

2020-07-02  本文已影响0人  泽泽伐木类

前言

OpenGL,一个跨平台的图像渲染引擎框架;
OpenGL ES,作为OpenGL的一个子集,针对移动端设备或者游戏主机等嵌入式设备的渲染框架;
Metal,Apple推出的图形渲染框架,目前作为iOS底层的渲染的核心;

常见名词

//获取上下文
CGContextRef context = UIGraphicsGetCurrentContext();
//更新/设置上下文状态
CGContextAddEllipseInRect(context, CGRectMake(0,0,100,100));
//更新/设置上下文状态
CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor);
//更新/设置上下文状态
CGContextFillPath(context);

-渲染(Render):绘制到屏幕的过程。

-顶点数组(VertexArray):屏幕上的位置信息集合(顶点数据),比如UIView.frame,通常存放在内存中。

-顶点缓冲区(VertexBuffer):将顶点数据缓存到GPU的显存中。

-管线:就像工厂的生产流水线,一个接一个的环节。

-固定管线:一个设定好的生产方式;比如调用一些系统固定功能的API,我们不需要关注内部实现,而且无法改变它的内部实现;在OpenGL中就是固定着色器(OpenGL提供了一些预设好的渲染API).

-可编程管线:可自定义,正好跟固定管线相反,在OpenGL下使用GLSL语法来自定义。

-着色器(shader):运行在GPU上的一个代码段。

-固定着色器(存储着色器):预设好的代码段,直接调用,不可更改。

-自定义着色器:使用GLSL语法自定义代码段,比如顶点着色器(确实要显示图形的位置;缩放/平移/旋转;3D效果的投影换算),片元着色器(对图形每一个像素点的处理,GPU并行计算)。

-GLSL: OpenGL Shader Language 的缩写

-光栅化:将代码逻辑位置转换为屏幕像素物理位置的过程,首先确认图像像素范围,然后将颜色映射上去。

-纹理:理解为一张图片,位图(bitmap);

-混合(Blend):对两个图层重叠部分的渲染计算。比如两个半透明视图重叠部分的颜色计算。

-变换矩阵:矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,是数学线性代数中的一个概念。比如iOS下CGAffineTransform,可以实现视图的平移,缩放,旋转。

-投影矩阵:⽤用于将3D坐标转换为⼆二维屏幕坐标,实际线条也将在⼆二维坐标下进⾏行行绘制。

-正投影:又称为平行投影,1:1的绘制,描述2D效果

-透视投影:描述3D效果,具有空间感(远小近大)

-物体坐标系:类似于UIView.layer.bounds

-世界坐标系:类似于UIView.layer.frame

以上的解释可能不是很标准,只是个人对这些名词的一些理解,如果有错误的地方,请指正,谢谢!

图片的渲染流程

图片的渲染是有CPU和GPU共同完成的

CoreGraphics 解压图片

1.CGBitmapContextCreate()
2.CGContextDrawImage()
3.CGBitmapContextCreateImage()

总结

以上信息待完善。这里先记录一下!!!

上一篇 下一篇

猜你喜欢

热点阅读