我有一个OpenGL ES游戏应用程序,它使用单个PNG精灵,其上有27帧,代表一个动画怪物。所以,我的PNG目前宽度为27 * 96像素,高度为96像素。
我最近添加了新的动画,所以它变成了57帧,现在它是57 * 96,宽度略高于5000 px。现在我的纹理只显示为白色方块!?
我用不同的图像,大小(以KB为单位)和分辨率测试了它,我发现任何宽度超过4000像素的纹理都会得到这个白色方块,无论文件大小如何。
是记忆问题吗? 你对修理它有什么想法吗?
我正在测试HTC Desire,我认为它与Adreno 200 GPU配合使用。
答案 0 :(得分:3)
OpenGL实现具有最大的纹理宽度和高度,无论是桌面还是移动。你应该做的是当动画纹理太宽时,只需开始一个新的行。如果您使用GL_MAX_TEXTURE_SIZE的glEnvironment,您可以找到设备的最大纹理尺寸:opengl.org/wiki/Textures_-_more。
请注意,它取决于硬件,因此HTC可能是4096(实际上它实际上非常大),但对于大多数其他手机来说肯定更小 - 尤其是旧手机。