看着标题我已经步入了OpenGL反应堆里了,今天和大家说一说我入门的一些“名词”个人理解,如有理解错误的地方望大家指正,谢谢大家了。
首先借用张比较专业图片进门,如下
如有侵权,联系我删除对于我本人来说,OpenGL 主要针对 PC端图形图像渲染,OpenGL ES 主要针对移动端图形图像渲染。两者区别还有在于OpenGL ES只是比OpenGL减少了一部分子集、不必要和性能低的API接口。
我们作为iOS开发者,在开发过程中间接使用OpenGL ES或者Metal可通过CoreGraphics、CoreAnimation、CoreImage三个框架。CoreAnimation框架在2018年以前基于OpenGL ES封装的上层框架,之后底层渲染迁移到Metal。
接下来,我们了解一下OpenGL 一些专有名词:
1、上下文和状态
上下文是个非常庞大的状态机。状态机理论上是一种机器,有几个特点:有记录功能,能记住其当前的状态(如上下文的开启停止);可以接收输⼊,根据输⼊的内容和自己的原先状态,修改自己当前状态,并且可以有对应输出。
2、渲染
将图形/图像数据转换成2D空间图像操作(图片、按钮、视频绘制显示到屏幕过程)。
3、顶点数组、顶点缓存区
顶点指绘制图形时,其顶点位置数据。各个顶点数据是图形大致骨架,存在内存中被称为顶点数组。顶点数据也可以存在已经提前准备好的显存中,这部分显存称为顶点缓存区。
4、管线
如有侵权,联系我删除类似于流水线,一个接着一个过程叫管线。
5、固定管线
如有侵权,联系我删除封装好了多种着色器程序块,只需调用传参就可得结果。
6、着色器、固定着色器、自定义着色器
着色器是一个代码程序片段。固定着色器指由OpenGL来提供的固定代码段,调用即可。自定义着色器指基于GLSL语法来自定义编程代码段。
7、顶点着色器(是唯一可自定义两个着色器中的一个)
如有侵权,联系我删除确定顶点位置;旋转、平移、缩放位置换算;投影换算;
8、片元着色器(是唯一可自定义两个着色器中的一个)
如有侵权,联系我删除处理每个像素点,(如图片饱和度调整,就要修改图片上的每个像素点)。
9、GLSL
如有侵权,联系我删除是代码语言,基于OpenGL标准来调用GPU做计算的。
10、光栅化
如有侵权,联系我删除一是确定图形的像素范围;二是将颜色附着到每个像素上。
11、纹理
如有侵权,联系我删除就是位图,位图指一些压缩图(.png、.jpeg)通过解码成的。在OpenGL中.tga格式为纹理文件。
12、混合
如有侵权,联系我删除如两颜色叠在一起,出现部分区域两种颜色混合一起情况,这个区域是通过算法得出的。
13、变换矩阵
如有侵权,联系我删除记录图片变化的结果。
14、投影矩阵
如有侵权,联系我删除将3D坐标转2D坐标。
15、投影方式
可分为两种:一是正投影,不管远近1:1进行绘制,呈现2D效果;二是透视投影,远小近大,呈现3D效果。
16、坐标系
物体坐标系:每个物体都有自⼰独立的坐标系。当物体旋转和移动的时候,这个坐标系也会发⽣生相应的变化。
世界坐标系:就是用户构造的固定的坐标系,⽅便描述这个坐标系下各种物体相对于原点的位置。
观察者坐标系:从观察者视角出发,看物体得出的坐标系。
网友评论