初识OpenGL

一,What is the OpenGL

OpenGL是一个开放的图形库。它也是一个定义了跨编程语言,平台的编程接口规格的专业图形程序接口。它不仅可以用于二维图形,也可以用于三维图形。


二,What can we do using  the OpenGL

OpenGL目前涉及的领域:视频、图形、图片的处理,2D/3D游戏引擎的开发,科学可视化,医学软件的开发,CAD,虚拟实境,AI等


三,OpenGL 和 OPenGL ES

 OpenGL ES 是一个应用在移动平台上能够支持OPenGL的的最基本功能的精简规范,因此 它是OpenGL的子集。由于移动平台的例如内存,CPU,GPU等的限制,OpenGL ES 关闭了大部分的功能,因此,子集在使用OpenGL 的功能时要随时开启和关闭

四,What is the reason for Using the OpenGL ES

初识OpenGL

当GPU和CPU同时操作一块内存的时候,这是后就会产生数据饥饿。

数据饥饿:从一块内存复制数据到另一块内存,传递速度非常快,就在内存复制数据的时候 CPU和GPU都不能操作这个数据,这个现象叫数据饥饿

OPenGL提供的缓存区域在一定程度解决了这个问题

五,初识着色器

  1. GLSL                                                                                                                                                                                   他的全称是OpenGL Shading Language 是用来在IOpenGL中着色的编程语言。也即开发人员写的短小的自定义程序,他们是在图形卡的GPU (Graphic Processor Unit图形处理单元)上执行的,代替了固定的渲染管线的一部分,使渲染管线中不同层次具有可编程性
  2. 图元                                                                                                                                                                                   全称为图形输出原语(graphics output primitive),是图形软件包中用来描述各种图形元素的函数,或简称为图元(primitive)。描述对象几何要素的输出图元一般称为几何图元。点的定位和直线段是最简单的几何图元。
  3. OpenGL 渲染管线                                                                                                                                                                   渲染管线也称为渲染流水线,是显示芯片内部处理图形信号相互独立的并行处理单元。                                                     简单的描述:就是把数据处理转换为最终图像的过程。分为顶点处理阶段和片元处理阶段
  4. 可编程管线的编程阶段                                                                                                                                                   初识OpenGL   着色器分类:顶点着器、细分着色器、几何着色器、片元着色器等                                                                                    光栅化:将输入图元的数字描述转化为与屏幕位置对应的像素片元                                                                                    顶点处理阶段:顶点着色器拿到定点数据,单独处理每个顶点,然后通过细分着色器首先描述物体的形状,在管线中生成新的集合体,然后处理模型生成最终状态,最后通过几何着色器对所有图像进行修改,改变几何图元的类型或者放弃掉所有的图元                                                                                                                                                                        片元处理阶段:通过图元设置,例如剪裁,剪切掉视口之外的绘制然后通过光栅化处理传递给片元着色器,片元着色器处理片元颜色以及深度值然后传递到片元测试和混合模块,最终显示效果