Android设备GL_MAX_TEXTURE_SIZE限制,安全纹理大小

时间:2013-06-05 03:56:32

标签: android opengl-es

我正在使用AndEngine和OpenGL ES 2.0。我一直在阅读GL_MAX_TEXTURE_SIZE以及如何保留1024x1024下的纹理。我之前和使用TMX扩展中的tileset时都开始出错了(如果你不知道AndEngine,那真的不重要)我得到一个使纹理比1024px宽的tileset。我正在考虑将tileset分成两部分,使它们“安全”。但我发现在过去几年中发布的任何设备都在2048x2048下设置了此限制。我可以使用GL_MAX_TEXTURE_SIZE来过滤设备的列表或网站吗?


我读了以下问题:

And I used this site to search for devices.但我无法通过GL_MAX_TEXTURE_SIZE搜索/过滤,这会使搜索变得乏味。我主要是因为我开始做错了,这是一个爱好项目,与可能启用的设备数量相比,工作量可能太大(我希望0)。

2 个答案:

答案 0 :(得分:6)

1024x1024是最安全的,你可以使用任何设备,特别是在较旧的设备上。较新的设备不应该有任何问题,虽然我已经看到最近的设备(我记得Galaxy Nexus,虽然修复了最新的ICS更新)渲染白色四边形,纹理大小为2048x1024。

如果您要定位新设备并希望保持旧设备兼容,那么分割您的图块集应该不会有什么坏处。毕竟,如果您使用两个或三个spritesheets作为背景等,则不太可能进行太多的上下文切换。

答案 1 :(得分:1)

如果您仍然拥有单独的图像文件,如果您使用LibGdx库中的TexturePacker2工具,则可以轻松将它们分成小尺寸的地图集或自定义大小的地图集。

我不知道设备的确切限制,但考虑到您希望支持并从那里向上构建的设备的最低端总是更好。使用LibGdx工具,您可以在以后轻松改变主意,因此这是最灵活的解决方案。

看看: LibGdx TexturePacker