我曾经在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?
答案 0 :(得分:2)
简单地说,不,旧式管道已经消失。
使用固定功能,立即模式,矩阵层次结构等,以及着色器和缓冲区。
答案 1 :(得分:2)
为什么它不像nehe教程那么简单:
因为使用立即模式并不简单。立即模式如此吸引人的原因是,您可以将数字直接输入函数调用中。 如果你要从文件中加载几何图形怎么办?你最有可能!然后你的几何体在一些缓冲区中。然后你需要构建循环,以正确的顺序调用立即模式函数等等。一旦你将几何体放在缓冲区中,实际上更容易将OpenGL指向它并发出一些glDrawElement或glDrawArray调用。
首次使用顶点数组看起来是否复杂?是。但从长远来看,顶点数组更容易使用。
此外,它们效率更高,因为您可以批量发送大量几何体。
在nehe教程中有没有办法使用OpenGL?
你的目标是OpenGL-ES而不是,这是不可能的(也不是OpenGL-3核心及以后)。坦率地说:你不应该首先采用NeHe风格。 NeHe教程已经过时,无法有效利用现代GPU功能。