美文网首页
0X01、 OpenGL 专业术语理解

0X01、 OpenGL 专业术语理解

作者: Hello_kid | 来源:发表于2020-09-28 23:12 被阅读0次

    在学系OpenGL 之前,首先了解一波它的名词术语;
    因为深入理解这些术语, 对后面的学习会更舒服一些;
    如果有玩过3D MAX 会对其中一些概念理解起来比较容易,如纹理 贴图 坐标系等

    01. 计算机图形API有哪些?

    • OpenGL

      2D和3D的跨平台,跨编程语言图形API,它将计算机资源抽象成一个个对象,对这些对象的操作抽象成了OpenGL指令, 利用并行的高运算的GPU能力,加速渲染图形

    • OpenGL ES

      OpenGL三维图形的子集, 针对手机、游戏机等嵌入式设备设计的一套图形API,去除了不必要和性能较低的接口;

    • DirectX

      windows平台图形API, 所以不属于跨平台;

    • Matel

      苹果为游戏开发者推出的新平台技术Matel, 该技术能为3D图像渲染提高10倍性能,Matel是为解决3D渲染推出的框架;

    02. OpenGL context

    OpenGL 上下文环境, 是一个庞大的状态机,保存了一堆控制开关
    不管在什么编程语言中,都是类似c语言面向过程的函数,因此可以通过对OpenGL指令的封装,可以将OpenGL相关调用封装成为一个面向对象的图形API;
    当上状态机进入特殊状态 比如停机状态, 就不接受输入
    切换上下文环境 会有较大的开销 ,因此在应用中,可以创建不同的上下文, 在不同的线程中使用不同的上下文,上下文之间可以共享纹理,缓冲区等资源,这种方案比切换上下文更加合理高效;

    04. 渲染(Rendering)是指什么?

    将数学和图形数据转换成3D空间的图像叫做渲染(Rendering)

    • 作为动词 在计算机中指的是创建三维图像的过程
    • 作为名词 指最终产生的作品 (图片、按钮、视频 显示到屏幕的过程)

    05. 顶点数组和顶点缓存区

    • 顶点数组保存在内存中,
    • 顶点缓存区 顶点数据存储在GPU的显存中

    06. 管线

    相当与一条流水线, 单向,把图形图像从管道的一头流到另一头,从开始执行到末尾,管线是一个抽象概念
    有点像Linux管道命令,用 | 分割, 先做什么,后做什么, 一步一步来;
    把图形图像渲染到屏幕的过程

    核心要点

    • 任务严格按照顺序依次执行

    07. 固定管线与可编程管线

    • 固定管线 对应非常多的固定着色器,由一系列着色器程序组成的管线
    • 可编程管线 自定义编程模具(GLSL语法驱动GPU) 因为随着场景的丰富,固定管线或者着色器程序不能满足开发,OpenGL就将相关部分开放成可编程,可以freestyle,直到OpenGL ES3.0, 只开放了顶点着色器和片元着色器可供编辑;

    07. 固定存储着色器程序(shader)

    • 顶点着色器
    • 片元着色器(像素着色器)
    • 自定义着色器

    7.1 顶点着色器

    处理顶点数据的几何关系,
    1 确定位置
    2 旋转 平移 缩放 换算
    3 3D到2D的投影换算

    7.2 片元着色器

    片元着色器

    片元着色器 主要负责处理像素点,对每一个像素点进行颜色的计算

    08. GLSL (OpenGL Shading Language)

    着色器语言, 就像开发iOS用Objective-C, Swift, 开发android用Java, Kotlin, 开发shader, 使用GLSL;

    09. 光栅化(Rasterization)

    把顶点数据转化为片元的过程,其实就是将几何图元转换为二维图形的过程,包含

    10. 纹理(Texture)

    可以理解为一张图片(位图),

    11. 混合(Blending)

    混合,可以理解在photoshop中的,叠加模式, 不同的图层叠加在一起,产生混合的的效果,

    12. 矩阵

    • 变换矩阵
      图形想发生平移 缩放 旋转 就需要使用变换矩阵
    • 投影矩阵
      将3D坐标转换为二维屏幕坐标

    13. 渲染上屏/交换缓存区(SwapBuffer)

    投影

    • 透视投影
      远小近大 3D图形
    • 正投影 (平行投影)
      1:1进行绘制 2D图形

    OpenGL 坐标系

    • 2D笛卡尔坐标系
    • 3D笛卡尔坐标系

    位图 Bitmap

    也称之为点阵图 栅格图 是由一个个像素(Pixel)点组成的
    位图大小,120120的图片= 120120 = 14400 * 4 = 位图大小(Byte)

    相关文章

      网友评论

          本文标题:0X01、 OpenGL 专业术语理解

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