[OpenGL]音视频处理中的专业术语

2020/7/3 posted in  音视频 总阅读量

框架说明

  • OpenGL: 跨编程语言和跨平台的编程图形程序接口,是一种协议。
  • OpenGL ES:OpenGL的子集,针对手机和嵌入式设备设计。
  • DirectX:Windows的多媒体处理框架,不是跨平台的,可以处理显示部分、声⾳部分、输⼊部分和⽹络部分。
  • Metal:是苹果为了解决3D渲染推出的框架,暂时不能跨平台,苹果底层都改用Metal了。
  • OpenCV:主要功能是图像识别(人脸识别/身份证识别),现在和人工智能结合使用的场景比较多。

专业名词

  • OpenGL上下文(context):上下文是一个非常庞大的状态机,保存OpenGL中的各种状态。
  • 状态机:是理论上的一种机器,有如下特性:
    1. 有记忆功能,能记住当前的状态
    2. 可以接收输入改变状态,并且可以有相应的输出
    3. 停机状态,不再接收输入,停止工作
  • 渲染:将图形/图像数据转换成2D空间图像的操作叫做渲染
  • 顶点数组:顶点数据是要画的图像的骨架,和数学中的顶点定义很像。OpenGL中图元只有三种:点、线、三角形,其它复杂图形都是通过这三种形状组合形成,顶点数组储存在内存中。
  • 顶点缓冲区:顶点数据储存在显存(GPU内存)中就叫做顶点缓冲区
  • 着色器程序Shader: 着色器就是在渲染过程中处理渲染的一个个小程序,用来对图形进行相应的处理。常见的着色器有顶点着色器(VertexShader),片元(FragmentShader)/像素(PixelShader)着色器,几何着色器(GeometryShader),曲面细分着色器。其中我们能操作的只有顶点着色器和片元着色器。
  • 管线:渲染过程中,我们会有一个一个的步骤来对图形进行处理 ,和流水线一样,这个过程我们称为管线。
  • 固定管线:固定管线就是OpenGL已经封装好的一些固定渲染流程,如果我们想要一样的渲染效果,直接调用就可以了。
  • 光栅化: 光栅化是描述由定点着色器转换到片元着色器的这个过程。
  • 纹理:纹理就是我们在描述一个物体的材质而使用的一张图片。本质就是一张位图,只不过在OpenGL中称为纹理。
  • 混合:两个图形有交集时,交集的区域需要根据混合算法来进行呈现
  • 矩阵:我们在对顶点进行变换操作或者改变顶点坐标系时通常使用矩阵来进行操作。图形想发生平移,缩放,旋转变换就需要使用变换矩阵。用于将3d坐标转换为二维屏幕坐标,我们需要用到投影矩阵
  • 视口:图片最终显示在屏幕上的大小。
  • 投影:投影分为两种,正投影透视投影,正投影,无透视效果,无论多远,物体的大小不会改变;物体在透视投影下表现为近大远小,具有3D效果

  • 坐标系:描述一个物体的位置时,我们需要先确定坐标系,这样才能用数字准确描述物体的位置。OpenGL中有一下几种坐标系:

    1. 世界坐标:用来描述场景的坐标,用这个坐标系来描述物体及光源的位置
    2. 物体坐标:以物体某一点为原点而建立的坐标,该物体其它部分坐标都是通过此坐标系来描述,物体放入场景中,各部分经历的坐标变换,相对位置不变,可以视为一个整体,跟人类思维习惯一致
    3. 摄像机(Camera)坐标/眼坐标:观察者眼睛位置为原点,以视线方向为Z轴的三维坐标系。会模拟人眼,在视线范围里的物体才会显示
    4. 设备坐标:经过转换后最终在显示设备上的对应的坐标

    转换流程:

    1. 物体坐标系通过一个变换矩阵转换后得到物体在世界坐标系中的位置
    2. 世界坐标系下的位置再转换成眼坐标系下的坐标,得到眼坐标系下的位置
    3. 最后根据视口进行裁切,最终得到设备坐标系下的坐标,然后渲染到屏幕上。