android OpenGL ES开发之前世今生
android OpenGL ES开发之shader
anroid OpenGL ES之 向shader传递数据
在介绍OpenGL ES之前,先介绍一下OpenGL。
总的来说,OpenGL之于GPU,就想操作系统之于CPU。
这句话,又有些不准确,因为操作系统不只控制CPU这一个硬件。
OpenGL把图像数据和几何数据发给图形硬件,再经过一系列的处理,最终将图像显示在屏幕上。
OpenGL是Open Graphics Library的缩写,是个定义了一个跨编程语言、跨平台的编程接口的标准。
OpenGL被当作客户端-服务器系统来实现的,应用程序是客户端,图形硬件厂商提供的OpenGL实现是服务器。
其原理是:客户端程序需要调用OpenGL的接口实现3D渲染,那么OpenGL命令和数据会缓存在RAM中,在一定条件下,会将这些命令和数据通过CPU时钟发送到VRAM,在GPU的控制下,使用VRAM中的数据和命令,完成图形的渲染,并将结果存入帧缓冲区中,帧缓冲区中的帧最终会被发送到显示器上,显示出结果。
介绍完了OpenGL,再来说我们要学习的OpenGL ES。这里的ES是Embedded Systems(嵌入式系统)的意思。
OpenGL ES是OpenGL的一个子集,是针对手机、PDA和游戏主机等嵌入式设备而设计。由OpenGL删除了部分而成,但其主体还是相似的,大部分函数的参数,返回值,具体实现都是一致的。
所以当你在学习OpenGL ES时,如果因为资料太少,也可以去看OpenGL的资料。
需要说明一下的是OpenGL并不开源,它只是开发标准。
介绍完了OpenGL ES的前世今生,下一篇就要介绍具体使用了。