美文网首页
OpenGL学习(二)一些名词解析

OpenGL学习(二)一些名词解析

作者: 蚂蚁_a | 来源:发表于2020-07-04 12:56 被阅读0次

    1. OpenGL & OpenGL ES

    • OpenGL
      是一个跨编程语言、跨平台的编程图形程序接口,它将计算机的资源抽象成为一个个OpenGL的对象,对这些资源的操作抽象为一个个的OpenGL指令
    • OpenGL ES
      OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计,去除了不必要和性能较低的API接口

    2. OpenGL 上下文

    在应用程序调用任何OpenGL的指令之前,需要安排首先创建一个OpenGL的上下文,这个上下文是一个非常庞大的状态机,保存了OpenGL中的各种状态,这也OpenGL指令执行的基础

    3. OpenGL 状态机

    状态机是一个抽象的模型,表示一组状态变量的集合,OpenGL使用了一种状态模型(或称状态机)来追踪所有的OpenGL状态变量,当一个状态值被设置之后,它就一直保持这个状态,直到其他函数对它进行修改为止

    假设当我们想告诉OpenGL去画线段而不是三角形的时候,我们通过改变一些上下文变量来改变OpenGL状态,从而告诉OpenGL如何去绘图。一旦我们改变了OpenGL的状态为绘制线段,下一个绘制命令就会画出线段而不是三角形

    4. 渲染

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

    5. 顶点数组(VertexArray)和顶点缓冲区(VertexBuffer)
    • 顶点
      绘制一个图形时,顶点位置的数据
    • 顶点数组
      调用绘制方法的时候,直接从内存中传入顶点数据,这部分数据之前是存储在内存中的,称为顶点数组
    • 顶点缓冲区
      绘制更高效的方法是,提前分配一块显存,顶点数据存储到显存当中,这部分显存称为顶点缓冲区

    6. 管线

    • 管线
      OpenGL下渲染图像时,会经历一个个节点,这样的操作可以理解为管线,处理数据的时候是按照一个固定的顺序来的
    • 固定管线/存储着色器
      早期OpenGL版本,封装了很多种着色器程序块,来帮助开发者完成图形的渲染,开发者只需要传入响应的参数,就能快速完成图形的渲染

    7. 着色器

    • 着色器程序Shader
      OpenGL在实际调用绘制函数之前,还需要指定一个由shader编译成的着色器程序
    • 顶点着色器(VertexShader)
      一般用来处理图形每个顶点变换(旋转/平移/投影等)
      顶点着色器是逐顶点运算的,每个顶点数据都会执行一次顶点着色器,是并行的
    • 片元着色器(FragmentShader)
      一般用来处理图形中每个像素点颜色计算和填充
      片段着色器是逐像素运算的,每个像素都会执行一次片段着色器,是并行的
    • OpenGL绘制过程
      顶点着色器对传入的顶点数据进行运算
      通过图元装配,将顶点转换为图元
      进行光栅化,将图元这种矢量化图像,转换为栅格化数据
      将栅格化数据传入片段着色器中进行运算
      片段着色器会对栅格化数据中的每个像素进行运算,并决定像素的颜色

    7. GLSL(OpenGL Shading Language)

    OpenGL着色语言,GLSL的着色器代码分两个部分,Vertex Shader(顶点着色器)和 Fragment(片段着色器)

    8. 光栅化

    把顶点数据转换为片元的过程,片元中的每一个元素对应帧缓冲区中的一个像素
    是一种将几何图形转变为二维图像的过程,光栅化过程产生的是片元

    9. 纹理

    可以理解为图片,渲染图形时需要在其编码填充图片,为了使场景更加逼真,

    10. 混合

    11.变换矩阵(Transformation)

    图形发生平移、缩放、旋转变换需要使用变换矩阵

    12.投影矩阵(Projection)

    将3D坐标转换为二维屏幕坐标

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

    相关文章

      网友评论

          本文标题:OpenGL学习(二)一些名词解析

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