美文网首页
快速了解OpenGL下专用名词

快速了解OpenGL下专用名词

作者: kennths | 来源:发表于2020-02-06 12:12 被阅读0次

    今天来了解下OpenGL的专用名词,供后期查询使用。

    OpenGL上下文context:

        在所有应用程序调用OpenGL之前,都要先创建一个OpenGL的上下文,这个上下文保存了OpenGL使用过程中的所有状态。首先OpenGL的API都是面向过程的,这是一个操作过程的状态,就是对这个庞大状态机的一系列操作,通过更改这里的对象或者状态进行操作的。

    OpenGL状态机:

        状态机是非常庞大的,可以理解为宏观的将一个对象在其生命周期内所有操作过程都记录下的庞大数据。可以记录它当前状态,修改状态,开始运行,停止运行等一系列特点。

    渲染:

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

    顶点数组:

        顶点数组是由1个或几个以上的顶点数据组成,顶点是由x,y,z,w组成,就像一个三角形是由三个顶点组成,正方形是由四个顶点组成。但是由于OpenGL只有点,线,三角形三种基础的图元,所有绘制的图像都是由这三种基础的图元绘制而成。

    顶点缓冲区:

        可以想象一下,顶点数组是存储于内存中,当数据量小的时候,绘制过程肯定相对简单,但是当数据量多的时候,绘制图形多的时候,这时候就需要一个缓冲区,先将顶点数组存于缓冲区中。这部分缓存区就称之为顶点缓冲区。

    管线:

        由于OpenG执行渲染图像的过程中,都是一步一步的,按照一个步骤来执行的,就像流水线一样,是严格按照固定顺序来的,所以抽象地称为管线。而OpenGL封装了很多简易的固定管线,提供给开发者使用,这些管线称之为固定管线。

    着色器:

        既然有固定管线,那么就有非固定管线,而更改着色器就能编写可渲染的管线,常见的着色器主要有顶点着⾊器(VertexShader),⽚段着色器 (FragmentShader)/像素着色器(PixelShader),几何着色器 (GeometryShader),曲面细分着色器(TessellationShader)。而OpenGl提供给我们更改的着色器只有顶点着色器和片元着色器。

        OpenGL在处理理shader时,和其他编译器器⼀一样。通过编译、链接等步骤,⽣生 成了了着⾊色器器程序(glProgram),着⾊色器器程序同时包含了了顶点着⾊色器器和⽚片段 着⾊色器器的运算逻辑。在OpenGL进⾏行行绘制的时候,⾸首先由顶点着⾊色器器对传⼊入 的顶点数据进⾏行行运算。再通过图元装配,将顶点转换为图元。然后进⾏行行光 栅化,将图元这种⽮矢量量图形,转换为栅格化数据。最后,将栅格化数据传 ⼊入⽚片段着⾊色器器中进⾏行行运算。⽚片段着⾊色器器会对栅格化数据中的每⼀一个像素进 ⾏行行运算,并决定像素的颜⾊色。

    顶点着色器:

        是用来处理每个图形的所有顶点的变换的,如旋转,平移,投影等操作。它是逐个顶点进行计算的,所以每个顶点都会计算一次。而每个图形之间的计算是并行的。

    片元着色器:

        是用来处理每个图形中每个像素点的颜色,绘制,填充的。也是逐个像素点进行计算的,每个图形之间的计算也是并行的。

    光栅化:

        首先,我们绘制一个图形,先要确定它的顶点数据,然后将这些顶点数据转化为片元。这就是一个填充的过程,确定顶点,然后根据顶点的坐标等参数,将其内的每个像素点填充。就是将一个几何的图像变为二维的图形的过程,称为光栅化。

    纹理:

        纹理其实本质就是图片,就是绘制图形的过程中,用图片来绘制到每一个像素点中。但是在OpenGL中习惯叫做纹理,不是叫做图片。

    混合:

        在测试阶段之后,如果像素依然没有被剔除,那么像素的颜⾊色将会和帧缓 冲区中颜⾊色附着上的颜⾊色进⾏行行混合。

    变换矩阵:

        想让图形发生平移,缩放,旋转变换.就需要使用变换矩阵。

    投影矩阵:

        用于将3D坐标转换为⼆维屏幕坐标,实际线条也将在⼆维坐标下进行绘制。

    渲染上屏/交换缓冲区:

        OpenG将图形渲染到屏幕上是需要一系列耗时的操作的,如果只有一个渲染屏幕的缓冲区的话,那么在中间进行其他绘制工作的时候,画面就会不连续中断的,所以一般OpenGL都有两个缓冲区,一个是屏幕缓冲区,另一个是离屏缓冲区,当有其他的绘制工作绘制成功后便会存入离屏缓冲区中,等待指示,当得到交换缓冲区的指示后,就会交换两个缓冲区,实现图形变化的不中断显示。

        

    相关文章

      网友评论

          本文标题:快速了解OpenGL下专用名词

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