OpenGL ES系列 之 基本-3:Hello,EGL |
||
|
| ||
注:本文中例子针对Windows CE平台编写。 OpenGL ES简化了模型描述,取消了通过在 glBegin/glEnd 之间使用大量glVertex之类的调用来逐点描述模型,统一到使用VertexArray。 下面我们就来画一个简单的物体:用三角形拼出的HELLO EGL。该物体的示意图如下:
照例,先New App:
然后设置一下项目属性:
共有三处要改的,使得该项目可以利用上如下图所示的库和头文件: 首先是头文件包含目录: 然后是库文件目录: 最后是OpenGL ES库: OK,环境准备好了,可以写代码了。先把我们准备好的OpenGL ES初始化代码加上: 正如前面提过的,我们只能通过VERTEX_ARRAY批量的将模型顶点坐标发送给OpenGL ES,为此需要先glEnableClientState()以打开相关支持。为了让世界看上去更美好一点,我还用ColorArray给每个顶点指定了颜色。然后通过glVertexPointer/glColorPointer将数据发送出去,再通过glDrawArrays(GL_TRIANGLES)进行绘制。值得一提的是,目前GLES不支持GL_QUADS。 除了调用glDrawArrays(),OpenGL ES还提供了更为灵活的glDrawElements()方法,值得看一下规范里的说明。 剩下的奥密就全在数组helloVertex里了。其实它的内容已经完全表示的本文开始的那张示意图里了,建议您自己推算一下,以熟悉TRIANGLES建模。这个小小的例子也可以利用GL_TRIANG_STRIP得到很大的优化,感兴趣的可以练习一下。 代码如下: |
||
|
如果觉得本文有用,请抽空点击感兴趣的广告。您的举手之劳,可以给作者巨大的鼓励! |
||