我正在开发一款游戏(使用libGDX,适用于Windows,Linux和Android,基于OpenGL 2)。我知道在OpenGL中对纹理大小有一些技术限制/要求。但我听到有关这些的相互矛盾的陈述,所以我需要澄清一下:
player_sprite.png
)是否与此最大纹理大小或此功能有关?答案 0 :(得分:1)
最大纹理尺寸:我猜它依赖于设备,有些约2048x2048应该保存在中途的现代设备上。正确?这适用于纹理图集或整个纹理对象吗?"
GLES2规范规定最大纹理大小必须为64x64或更高。绝大多数Android和所有iOS GLES2设备都是2048x2048或更高。如果你能够下载到1024x1024,那么几乎所有的Android设备都是安全的。对于桌面目标,我认为2048x2048会没问题。
二次幂:OpenGL 2支持边长不是2的幂的纹理。但是我听说使用这种古老的fashinod大小的纹理可能更安全。正确的吗?
使用非幂二纹理需要注意的是,可以限制mipmapping和纹理包装。出于这个原因,我几乎一直使用2次幂纹理。使用纹理图集是提高性能和减少纹理浪费的好方法,因为许多形状笨拙的纹理可以组合成一个单一的大功率纹理。
位图大小:加载到游戏中的位图(例如player_sprite.png)的大小是否与此最大纹理大小或此二次幂相关?
不确定我理解这个问题。如果您要渲染纹理,那么png可能会被引擎加载并放入OpenGL纹理中,此时它受到与OpenGL最大纹理大小和幂的关系相关的规则的约束。二。