openGL ES学习教程 --- 概念篇

什么是OpenGL ES?

openGL是一个免费跨平台的图形库标准API,具体的实现由各个厂商实现,能实现复杂的2D、3D图形,而OpenGL ES是专门针对嵌入式终端而裁剪的一版openGL库,其原理是OpenGL提供的API控制GPU,发送操作指令,控制图像渲染管线进行绘制,最后在通过EGL与本地窗口交互,渲染输出到屏幕;EGL中间层作为OpenGL与本地窗口的桥梁,主要完成

  • 本地窗口通信
  • 查询和配置surface并创建surface
  • 管理纹理图片资源

渲染管线

openGL操作对象主要是GPU,GPU是显卡内部的核心组件,而GPU内部包含顶点渲染单元和像素渲染单元,前者负责图像模型绘制,后者负责为图像上色,早期的管线是固定管线如OpenGL ES1.0,现在OpenGL2.0支持可编程的渲染管线;这两个渲染管线也对应后面会用到的顶点着色器和片着色器

图元

OpenGL只支持三种基本图像的绘制:点、线、三角形,任何复杂的图像都可以由这三种图像构成

顶点着色器

根据传入的图元坐标,绘制图元,OpenGL ES是一个右手坐标系,屏幕中心是原点,x轴正方向向右,y轴正方向上,Z轴穿过屏幕指向正面,当我们作画时,我们向顶点着色器传入图像坐标,当涉及到空间变换、投影时,我们还可以往其传入矩阵,投影矩阵、观察矩阵等,对图像坐标进行转换;

片着色器

根据传入的颜色值对图像模型进行上色,如在纹理开发时,根据传入的纹理坐标点,取出对应的颜色,然后在对应的模型坐标值下进行上色

片段着色器是OpenGL中用于计算片段(像素)颜色的程序。片段着色器是逐像素运算的程
序,也就是说每个像素都会执行一次片段着色器,当然也是并行的。

所以OpenGL在图像绘制时,一般经历如下几个步骤:
openGL ES学习教程 --- 概念篇_第1张图片
光栅化图元 就是把图元转化为一个个片元,片元在底层可以映射到像素,用于片着色器对其上色

帧缓冲 可以理解为输出到屏幕最后一步中,缓存屏幕上需要显示的数据

以上只是一些基本的概念,在日常开发中我们还需要掌握以下几个知识:

  • OpenGL图形的基本绘制
  • 视图转换、正交投影、透视投影、相机视角
  • 纹理的使用
  • 离屏渲染FBO
  • EGL的使用

你可能感兴趣的:(av视频)