3

我以前用 OpenGL 为 PC 制作简单的游戏,现在我想在 Android 上做点什么。但是,很多事情是不同的......为什么画正方形这么复杂?(http://www.jayway.com/2009/12/04/opengl-es-tutorial-for-android--part-ii-building-a-polygon/) 为什么它不像 nehe 教程那么简单:

glBegin(GL_TRIANGLES);                      // Drawing Using Triangles
glVertex3f( 0.0f, 1.0f, 0.0f);              // Top
glVertex3f(-1.0f,-1.0f, 0.0f);              // Bottom Left
glVertex3f( 1.0f,-1.0f, 0.0f);              // Bottom Right
glEnd();                            // Finished Drawing The Triangle

有没有办法像在 nehe 教程中一样使用 OpenGL?

4

2 回答 2

2

为什么它不像 nehe 教程中那么简单:

因为使用立即模式并不简单。立即模式如此吸引人的原因在于,您可以将数字直接输入到函数调用中。如果您要从文件中加载几何图形怎么办?你很可能会!然后你的几何图形在一些缓冲区中。然后你需要构建循环,以正确的顺序调用立即模式函数,等等。一旦你将几何图形放在缓冲区中,实际上只需将 OpenGL 指向它并发出少量 glDrawElement 或 glDrawArray 调用就更容易了。

乍一看,使用顶点数组看起来很复杂吗?是的。但从长远来看,顶点数组更容易使用。

而且它们的效率要高得多,因为您可以批量发送大量几何图形。

有没有办法像在 nehe 教程中一样使用 OpenGL?

您的目标是 OpenGL-ES,不,这是不可能的(也不是 OpenGL-3 核心及更高版本)。坦率地说:你一开始就不应该像 NeHe 那样做。NeHe 教程已经过时,没有有效利用现代 GPU 功能。

于 2012-12-23T16:58:38.277 回答
2

简而言之,不,旧式管道已经消失。

使用固定功能、立即模式、矩阵层次结构等,并使用着色器和缓冲区。

于 2012-12-23T15:05:29.323 回答