在OpenGL Android中加载更多较小的纹理,而不是加载几个较大的纹理

在OpenGL Android中加载更多较小的纹理,而不是加载几个较大的纹理,android,graphics,opengl-es,textures,Android,Graphics,Opengl Es,Textures,我最近正在开发一款2-D Android游戏,我正在使用GLSurafaceView(OpenGL ES)渲染纹理。我将图形组合到精灵表中,并将它们加载到设备内存(GPU)中。最近,图形的数量增长了不少 我需要决定哪种方法更好,为什么更好。因此,我应该加载2-3个大的2048x2048子画面,还是加载8-12个小的1024x1024子画面 这些方法对性能、游戏加载时间、内存消耗有何影响?通常越少越大的精灵表越好,因为: 需要的状态更改更少 更容易批量绘制调用 也就是说,8-12张在我的书中并

我最近正在开发一款2-D Android游戏,我正在使用
GLSurafaceView
(OpenGL ES)渲染纹理。我将图形组合到精灵表中,并将它们加载到设备内存(GPU)中。最近,图形的数量增长了不少

我需要决定哪种方法更好,为什么更好。因此,我应该加载2-3个大的2048x2048子画面,还是加载8-12个小的1024x1024子画面


这些方法对性能、游戏加载时间、内存消耗有何影响?

通常越少越大的精灵表越好,因为:

  • 需要的状态更改更少
  • 更容易批量绘制调用

也就是说,8-12张在我的书中并不算多。如果你有几百,我会开始担心;)

看:@morrisonchange谢谢,顺便说一句,我已经读过了。对于Android,仍然不确定,也许有特定Android/GLSurfaceView经验的人会提供更精确的答案。如果你试图优化你的图形,那么你可能想提供更多关于你如何实现游戏的信息。你用过OpenGLES1.x/2.x还是3.x,你用过吗,你用过吗?你的最小硬件/目标硬件是什么?@MorrisonChang,OpenGL ES 1.0,我针对所有Android设备,该应用程序在商店中是公开的,它在我可能需要的所有设备上运行没有任何问题,我只想选择一种更好的方法来处理sprite表大小。OpenGL ES 1.x基本上已经过时了-不应该有新游戏针对它。市场上几乎所有的Android设备都支持OpenGL ES 2.0,因此这是一个合理的最低标准(而且比ES 1.x更能证明未来,因为3.x基本上只是2.0的超集)。