上下文(context)
官方解读:
- 在应用程序调⽤任何OpenGL的指令之前,需要安排⾸先创建一个OpenGL的上下⽂。这个上下文是一个⾮常庞大的状态机,保存了OpenGL中的各种状态,这也是OpenGL指令执行的基础
- OpenGL的函数不管在哪个语⾔言中,都是类似C语言一样的面向过程的函数,本质上都是对OpenGL上下⽂这个庞大的状态机中的某个状态或者对象进行操作,当然你得首先把这个对象设置为当前对象。因此,通过对OpenGL指令的封装,是可以将OpenGL的相关调⽤封装成为⼀个⾯向对象的图形API的
- 由于OpenGL上下⽂是一个巨大的状态机,切换上下文往往会产生较⼤的开销,但是不同的绘制模块,可能需要使用完全独⽴的状态管理。因此,可以在应⽤程序中分别创建多个不同的上下文,在不同线程中使⽤不同的上下⽂,上下⽂之间共享纹理、缓冲区等资源。这样的方案,会比反复切换上下文,或者⼤量修改渲染状态,更加合理⾼效的.
个人理解:
一个具有生命周期的机器,类似OC的单例对象,有大量属性,当一个机器开启时创建,结束时释放,过程中设置的内容都保存在上下文的属性中,以供生命周期内的其他资源随时调用
顶点数据
顶点指的是我们在绘制⼀个图形时,它的顶点位置数据.而这个数据可以直接存储在数组中或者将其缓存到GPU内存中,由顶点数据构成一个图片的骨架,OpenGL的图片是由图元组成,OpenGL ES中只有三种图元 点 线 三角形
顶点数组
将顶点数据保存在内存中,CPU在调用过程中要从内存中拿数据,涉及到GPU的带宽
顶点缓冲区
将顶点数据保存在CGP的显存中,在调度的时候,性能更高
管线与固定管线
可以理解一个流程,比如把木头变成木雕的过程,同理固定管线就是固定流程
着色器与固定着色器
可以理解CPU调用的函数,着色器是供GPU使用的,固定着色器就是系统的方法,不能修改,只能使用
WX20201011-201040@2x.png
顶点着色器
用来操作图片的形状,平移,缩放,翻转,投影等功能的函数
一般有三个主要功能
- 确定位置
- 进行 平移 旋转 缩放
- 投影 因为屏幕是2D的 要将3D的内容呈现在2D的屏幕上,要进行投影,涉及到3D数学转换
片元着色器/像素着色器
为单独的像素点计算与填充颜色的函数,一般是RGBA, 一个图片的渲染, 要调用多次的片元着色器
光栅化
把顶点数据转化为片元的过程,具体有两个动作:
- 图元装配(将顶点数据组装成想要的形状)
- 为图元附着颜色
纹理
就是指位图,解压后的图片
颜色混合
当半透明图层进行叠加时,会出现颜色混合计算,一般在组透明度时会发生离屏渲染
变换矩阵
当进行图片的缩放,平移, 翻转时 是通过顶点数据乘上一个参数, 多个顶点数据乘上的数据就是变换矩阵
投影矩阵
是3D坐标转2D坐标的过程
视口
指显示在屏幕上的物理坐标窗口
投影
平行投影:1:1大小的绘制在屏幕上
透视投影:符合人眼看规则,看远处的会小,近处的大
网友评论