Android OpenGL-nehe教程中的类似绘图
我曾经在OpenGL中为PC制作简单的游戏,现在我想在Android上做点什么。 但是,很多事情是不同的。。。为什么画正方形这么复杂?(http://www.jayway.com/2009/12/04/opengl-es-tutorial-for-android--part-ii-building-a-polygon/) 为什么不像nehe教程中那样简单:Android OpenGL-nehe教程中的类似绘图,android,opengl-es,Android,Opengl Es,我曾经在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
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?简单地说,没有,旧式的管道已经不存在了 输出固定函数、即时模式、矩阵层次结构等,输入着色器和缓冲区 为什么不像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
因为使用即时模式并不简单。即时模式之所以如此吸引人,是因为您可以将数字直接输入函数调用中。如果要从文件中加载几何体呢?你很可能会的!然后你的几何体在某个缓冲区中。然后,您需要构建循环,以正确的顺序调用即时模式函数,等等。一旦您将几何体放入缓冲区中,将OpenGL指向它并发出大量glDrawElement或glDrawArray调用实际上会更容易
使用顶点数组乍看起来复杂吗?对但从长远来看,顶点数组更容易使用
此外,它们的效率更高,因为您可以批量发送大量几何体
有没有办法像在nehe教程中一样使用OpenGL
您的目标是OpenGL ES,不,这是不可能的(OpenGL-3 core和更高版本也不可能)。坦白地说:你不应该一开始就用内河的方式。NeHe教程已经过时,不能有效地利用现代GPU功能。我假设您正在尝试使用OpenGL ES 2,对吗?OpenGL ES 2要求您使用着色器,这需要做更多的工作,但从长远来看效果更好。此外,对于更大的几何体,调用数千种方法与调用一种方法相比,在性能上也有很大差异。