Java Android:OpenGL ES:Can';不能处理太宽的纹理?

Java Android:OpenGL ES:Can';不能处理太宽的纹理?,java,graphics,opengl-es,android,Java,Graphics,Opengl Es,Android,我有一个OpenGL ES游戏应用程序,它使用一个PNG精灵(水平方向上有27帧)来表示一个动画怪物。所以,我的PNG现在是27*96像素宽,96像素高 我最近给它添加了新的动画,所以它变成了57帧,现在是57*96,比5000像素宽一点。现在我的纹理只显示为白色方块 我用不同的图像、大小(KB)和分辨率对它进行了测试,我发现任何大于4000像素的纹理都会得到这个白色正方形,不管文件大小如何 这是内存问题吗? 你对修理它有什么想法吗 我正在测试HTC Desire,我相信它使用的是Adreno

我有一个OpenGL ES游戏应用程序,它使用一个PNG精灵(水平方向上有27帧)来表示一个动画怪物。所以,我的PNG现在是27*96像素宽,96像素高

我最近给它添加了新的动画,所以它变成了57帧,现在是57*96,比5000像素宽一点。现在我的纹理只显示为白色方块

我用不同的图像、大小(KB)和分辨率对它进行了测试,我发现任何大于4000像素的纹理都会得到这个白色正方形,不管文件大小如何

这是内存问题吗?
你对修理它有什么想法吗


我正在测试HTC Desire,我相信它使用的是Adreno 200 GPU。

OpenGL实现的纹理宽度和高度最大,无论是桌面还是移动设备。您应该做的是,当动画纹理变得太宽时,只需开始一条新线。I.f使用GlenEnvironment和GL_MAX_TEXTURE_SIZE,您可以找到设备的最大纹理大小:


请注意,它取决于硬件,因此对于您的HTC来说可能是4096(实际上是惊人的大),但对于大多数其他手机来说,尤其是较旧的手机,它肯定更小。

OpenGL实现具有最大的纹理宽度和高度,无论是桌面还是移动设备。你应该做的是当动画纹理变得太宽时,简单地开始一条新的线。我不知道。。你有一些参考链接吗?如果你使用GlenEnvironment和GL_MAX_TEXTURE_SIZE,你可以找到你的设备的最大纹理大小:请注意,它取决于硬件,因此你的HTC可能是4096(实际上是惊人的大),但对于大多数其他手机,尤其是老式手机,它肯定更小。是的,我刚刚发现:)把它作为一个答案发送给我,这样我就可以接受它。你真是太好了:)