2013-05-01 71 views
0

我想绘制尽可能多的金字塔来填补空间。我可以画一个金字塔,改变它的颜色等。但是,现在,我想绘制很多可以填满屏幕的金字塔。我想要使​​用一组顶点和索引。 顶点和索引与颜色信息如下:绘图opengl中的多个相同的金字塔ES 2.0

const Vertex Vertices [] = { 
{{-1, -1, -1}, {1, 0, 0, 1}}, 
{{1, -1, -1}, {1, 0, 0, 1}}, 
{{1, -1, 1}, {1, 0, 0, 1}}, 
{{-1, -1, 1}, {1, 0, 0, 1}}, 
{{0, 1, 0}, {1, 0, 0, 1}} 
}; 

const GLubyte Indices[] = { 
2, 4, 3, 
1, 4, 2, 
0, 4, 1, 
4, 0, 3 
}; 

任何人可以帮助我的代码,我知道我做了一些错误。

回答

0

在OpenGL ES 2.0中,只有通过在屏幕上的不同位置重新渲染金字塔,才能做到这一点。你得到的东西叫'实例化',它只在OpenGL ES 3.0中得到支持,你可能会说你有一组顶点和索引,但你会发出一个gl命令来绘制它们的许多实例,所有的时间在片段着色器中,您将有一个内置变量“gl_InstanceID”,您可以使用它来告诉您当前正在使用的实例。

有一些特定供应商的扩展,让你做实例化在OpenGL ES 2.0,如NV_draw_instanced,但同样会只对特定厂商

+0

http://nukecode.blogspot.de/2011/工作07 /几何instancig换iphone-wip.html – 2013-05-07 13:46:30