OpenGL-ES入门之介绍篇

名词解释

OpenGL

通俗来讲,OpenGL是一个图形库,提供了一系列操作图形图像的API。因为OpenGL只是一个规范,具体的实现一般是由显卡提供。类似的图形库还有Windows平台的DirectX。

OpenGL-ES

OpenGL-ES是专为嵌入式设备准备的一个OpenGL的裁剪版(去除了一些复杂的图元)。OpenGL-ES支持Android、iOS等平台,并且它也是WebGL的基础。

EGL

EGL是OpenGL-ES与本地窗口系统之间的一个中间层API,一般由系统实现。EGL作为OpenGL-ES与设备之间的桥梁,将OpenGL-ES绘制在设备上。

WebGL

WebGL是OpenGL-ES在浏览器上的实现,WebGL1.0基于OpenGL-ES2.0实现,WebGL2.0基于OpenGl-ES3.0实现。

图形渲染管线

图形渲染管线也叫做渲染流水线,指的是将输入的原始图形数据经过渲染管线处理,输出一帧想要的图像的过程。

在OpenGL-ES中,任何事物都在3D空间中,而屏幕和窗口却都是2D的。所以图形渲染管线主要是在将输入的3D坐标转换成2D坐标,再讲2D坐标转换成实际有颜色的像素。(将输入的3D坐标画在3D坐标系中,然后根据视锥范围截取一个2D平面,将截取的平面转换为平面坐标显示)

2D坐标精确的表示一个点在2D空间的位置;而像素是这个点的近似值,像素的显示收到屏幕分辨率的限制

与CPU不同,GPU适合处理的问题都有这样的特征,一个问题可以分解为多个相同的小问题,每个问题之间相互独立不影响,所以GPU拥有大量的处理单元,处理单元数量越多,性能也就越好。而每个单元都可以并行处理,所以GPU的并行能力非常强。

可编程的渲染管线

自OpenGL-ES 2.0开始,采用的都是可编程的渲染管线,也就是开发者可以自定义部分流水线中的着色器,使得可以更细致的控制图形渲染管线。

着色器是运行在GPU上的小程序,这些小程序在图形渲染管线的某个特定部分运行,着色器是一个非常独立的程序,是一种把输入转化为输出的程序,着色器与着色器之间无法通信。

开发者可编程的阶段有两个,一个是顶点着色器,一个是片段着色器。

OpenGL-ES渲染管线

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×