OpenGL简介以及术语总结

2020-07-12  本文已影响0人  为了自由的白菜

OpenGL简介

其次:苹果在2018年宣称弃用OpenGL、OpenGL ES等。其实还是可以用的,学习OpenGL相关的知识对我们iOS开发还是非常有用的。

OpenGL /OpenGL ES/ Metal 在任何项⽬中解决问题的本质就是利⽤GPU芯⽚来⾼效渲染图形图像. 图形API 是iOS开发者唯⼀接近GPU的⽅式.

OpenGL专业名词解析

OpenGL上下文[context]

OpenGL状态机

• 状态机是理论上的⼀种机器.这个⾮常难以理解.所以我们把这个状态机这么理解.状态机描述了⼀个对象在其⽣命周期内所经历的各种状态,状态间的转变,发⽣转变的动因,条件及转变中所执⾏的活动。或者说,状态机是⼀种⾏为,说明对象在其⽣命周期中响应事件所经历的状态序列以及对那些状态事件的响应。因此具有以下特点:

  1. 有记忆功能,能记住其当前的状态.
  2. 可以接收输⼊,根据输⼊的内容和⾃⼰的原先状态,修改⾃⼰当前状态,并且可以有对应输出.
  3. 当进⼊特殊状态(停机状态)的时候,变不再接收输⼊,停⽌⼯作;
  1. OpenGL可以记录⾃⼰的状态(如当前所使⽤的颜⾊、是否开启了混合功能等)
  2. OpenGL可以接收输⼊(当调⽤OpenGL函数的时候,实际上可以看成OpenGL在接收我们的输⼊),如我们调⽤glColor3f,则OpenGL接收到这个输⼊后会修改⾃⼰的“当前颜⾊”这个状态;
  3. OpenGL可以进⼊停⽌状态,不再接收输⼊。在程序退出前,OpenGL总会先停⽌⼯作的;

渲染

将图形/图像数据转换成3D空间图像操作叫做渲染(Rendering).

顶点数组(VertexArray)和顶点缓冲区(VertexBuffer)

管线

在OpenGL 下渲染图形,就会有经历⼀个⼀个节点.⽽这样的操作可以理解管线.⼤家可以想象成流⽔线.每个任务类似流⽔线般执⾏.任务之间有先后顺序. 管线是⼀个抽象的概念,之所以称之为管线是因为显卡在处理数据的时候是按照⼀个固定的顺序来的,⽽且严格按照这个顺序。就像⽔从⼀根管⼦的⼀端流到另⼀端,这个顺序是不能打破的.

固定管线/存储着⾊器

着色器程序Shader

顶点着⾊器VertexShader

⽚元着⾊器程序FragmentShader

GLSL(OpenGL Shading Language)

光栅化Rasterization

纹理

混合(Blending)

变换矩阵(Transformation)

投影矩阵Projection

渲染上屏/交换缓冲区(SwapBuffer)

上一篇下一篇

猜你喜欢

热点阅读