美文网首页
OpenGL初识及专业名词解析

OpenGL初识及专业名词解析

作者: 魔杰西 | 来源:发表于2020-07-02 17:53 被阅读0次

    “最好的时间就是十年前,其次就是现在了。”


    作为一个iOS开发者,我们为什么要了解OpenGL,OpenGL能做什么?我和你们一样,都是初学者,一起来探究吧!

    OpenGL 全称 Open Graphics Library , 又名 “开放式图形库” ,它是一个跨语言、跨平台的应用程序编程接口,也就是我们开发中常说的api。

    我们用OpenGL主要解决的是渲染问题,比如平时开发中系统对图片、按钮的渲染,游戏中人物及场景的渲染,视频/图片中增加特效等等。

    OpenGL ES是OpenGL的子集,是针对嵌入式设备设计的,去除了一些不必要的、性能较低的api。

    OpenGL 和 OpenGL ES在任何一个项目中解决问题的本质是利用GPU(图形处理器)芯片来高效渲染图形图像,是iOS接近GPU的唯一方式。

    要想系统地学习OpenGL,免不了接触跟它相关的专业名词,下面是一些专业名词的解析,了解这些专业名词有助于我们在后面的学习中拨云见雾。

    1.上下文(context)

            通俗点讲,上下文就是一种环境,跟写作文时候的语境差不多的意思,我们创建上下文就像给人制造了个环境,人可以在环境里面抽烟、敲代码,雨来了把窗户关上,太阳出来了把窗户打开,OpenGL中的上下文同样记录了自己的状态,我们可以在上下文中进行一系列的操作,有始有终有过程。

    2.渲染

            正常开发中将button、view等视图绘制显示到屏幕的过程我们称之为渲染。

    3.顶点数组(VertexArray),顶点缓存区(VertexBuffer)

            拿一个三角形来说,有三个顶点,三个顶点的数据以数组的形式存储在内存中,那这个数组我们称之为顶点数组;我们在调用绘制方法时,内存会把这个顶点数组传过来,为了提高性能,我们要建立一个缓存区来存放部分顶点数组,这个缓存区就是系统提前分配一块显存,也被叫做顶点缓存区。

    4.管线,固定管线,可编程管线

            在OpenGL下渲染图形,就会经历一个又一个节点,这样的操作就叫管线。固定管线就是这些操作的封装,开发者只需要调用外部接口就能实现图形渲染,但是就像实际项目开发一样,一些第三方的sdk不能满足产品经理“可耻”的要求,就需要我们来自定义,可编程管线的本质就是操作可自定义。

    5.着色器,顶点着色器,片元着色器        

            上面说到管线的封装,封装的是代码块,而这个代码块就叫做着色器,顶点着色器就是OpenGL用来计算顶点属性的程序,比如顶点坐标,平移旋转时位置的换算等,片元着色器也叫像素着色器,用于每个像素点的颜色计算和填充。

    6.光栅化:

            我们把它理解为一个过程,以三角形为例,我们知道了三角形的三个顶点坐标数据,然后根据这三个坐标数据来确定三角行的图像区域,在区域内给它赋上颜色,这个过程就叫光栅化。

    7.纹理

            就是图片,只是在OpenGL中术语叫纹理。

    8.混合

            蓝色图层跟红色图层叠加在一起,这种行为叫做混合。

    9.变换矩阵,投影矩阵

            图形想要进行平移、旋转、缩放动作的时候,我们就要使用变换矩阵。将3D坐标转换为2D坐标时,我们需要用到投影矩阵,投影方式分为两种,一种是正投影(又称平行投影),1:1绘制图形,另一种是透视投影,距离不同,大小不同(远小近大)。

    今天的学习就到这了,你是否也对OpenGL有了初步的印象呢?

    相关文章

      网友评论

          本文标题:OpenGL初识及专业名词解析

          本文链接:https://www.haomeiwen.com/subject/twdrqktx.html