虽然我在技术上使用OpenGL 2.0 ES在Android平台上工作,但我相信这可以应用于更多的OpenGL技术。
我有一个对象列表(敌人,角色等),我试图在网格上绘制,每个空间为1x1,每个对象匹配。目前,每个对象都是自译的......也就是说,它采用其模型坐标并通过一个简单的循环来调整它们,使其位于适当网格位置的世界坐标中。 (即如果它应该在(3,2),它将相应地转换它的坐标。
我遇到的问题是我不确定如何有效地绘制它们。我有一个遍历所有对象的循环并为每个对象调用draw,类似于android教程,但这看起来非常无效。
每个对象都有自己的方形图像,与它们填充的1x1网格相匹配。它们可能永远不会需要自己独特的着色器,因此对象之间唯一似乎改变的是verticies和着色器。
是否有一种有效的方法可以将每个模型放入管道而不会因为均匀的变化而冲洗?
答案 0 :(得分:2)
这可能需要一些尝试和错误程序,可能与硬件有关。我会使用GL_STATIC_DRAW对网格物体使用缓冲区对象,在较大的纹理中包装一些纹理,然后根据批量较大的纹理绘制所有对象,以尽可能避免状态变化。简介并获取有关您的瓶颈在哪里的更多信息。