快过年了,还要上班,无聊了,翻译一下OpenGL ES Game Develop 2004。不是全本翻译,看到自己具的重要的就写下来。
欢迎来到OpenGL ES Game Develop,通过这本书,你可以了解像手机这样的嵌入式设备上面的3D游戏开发,下面的这一张简单的介绍一个出不得概念,以便于你更好的阅读本书。
……
本书的一条主线就是OpenGL ES,但是,请不要惊讶,OpenGL ES与OpenGL很多地方都是想通的。我们的读者很多也许都会对OpenGL有了很多的了解,同时也会用它定制好的API。因而本书就不去讲 OpenGL的相关知识了,知识针对二者的不同之处进行讲解。
…………
EGL接口
EGL接口是一个介于OpenGL ES和底层的操作系统之间的一套接口函数。本章就针对EGL,介绍如何创建context、drawing surface等等,以及和其他的API比较分析如WGL GLX等等。
EGL 的所做的就是一个准备工作,让你的OpenGL ES具有可移植性,与硬件之间脱离开来。下面我们要具体的讲解EGL API。虽然ES提供了扩展项,对于不同的平台你可以扩展相关的API,但是我们仍然需要这样一层来沟通ES和操作系统,如果你的程序想具有可移植性。 ES本质上就是一个状态机,有一条图形处理的“生产线”,EGL就是这条生产线的外壳,来维持产线的运作。
下面有一张图可以清晰的表明他们之间的关系:
其中比较重要的有如下的几项:
Vertex Shader(定点遮罩(阴影)处理)
我们这里只是粗虐的看一下,我们会在后面再仔细的来讲顶点和片段的,它使用编程的方法对顶点进行简单的处理。这一环节的输入
有如下的几项:
1、属性集——每一个顶点的数据,使用的是Vertex array
2、Uniform 每个顶点使用的常数。
3、纹理(Samplers)——从某种意义来说,是一种特殊的常数集,描述顶点使用的纹理,纹理对于顶点来说是可选的。
4、遮罩处理——顶点的函数代码,描述顶点上面的一些操作。
那么。这一个环节的输出是什么呢?看下图:
图2
这个环节的输出称之为 Varying variables(可变变量),在后面的装配和光栅阶段,这些变量用于计算每一个的片段,用于Fragment shader的输入,