需要澄清 opengl 纹理大小要求
Clarification needed for opengl texture size requirements
我正在开发一款游戏(使用 libGDX,适用于 Windows、Linux 和 Android,基于 OpenGL 2)。我知道在 OpenGL 中涉及纹理大小时有一些技术 restrictions/requirements。但我听说过关于这些的相互矛盾的说法,所以我需要澄清一下:
- 最大纹理大小:我想这取决于设备,大约 2048x2048 应该保存在半现代设备上。正确的?这适用于纹理图集还是整个纹理对象?
- 二次幂:OpenGL 2 支持边长不是二次幂的纹理。但我听说使用这种老式大小的纹理可能更安全。正确吗?
- 位图大小:加载到游戏中的位图大小(例如
player_sprite.png
)是否与最大纹理大小或二次幂有关?
Maximum texture size: I guess it's device dependent and somewhat about 2048x2048 should be save on halfway modern devices. Correct? Does this apply to the texture atlas or the whole texture object?"
GLES2 规范规定最大纹理大小必须为 64x64 或更好。绝大多数 Android 和所有 iOS GLES2 设备都是 2048x2048 或更好的。如果您能够降低到 1024x1024,那么您在几乎所有 Android 设备上都是安全的。对于桌面目标,我认为 2048x2048 就可以了。
Power-of-two: OpenGL 2 supports textures with a edge length that is not a power of two. But I've heard that it might be safer to use such old-fashinod sized textures. Correct?
对于非二次方纹理,需要注意的是 mipmapping 和纹理环绕可能会受到限制。出于这个原因,我几乎一直使用二次方纹理。使用纹理图集是提高性能和减少纹理浪费的好方法,因为许多形状笨拙的纹理可以组合成一个大的二次方纹理。
Bitmap size: Does the size of the bitmap (e.g. player_sprite.png) that is loaded into the game have anything to do with this maximum texture size or this power-of-two thing?
不确定我是否理解问题。如果您要渲染纹理,则 png 可能会由引擎加载并放入 OpenGL 纹理中,此时它要遵守与 OpenGL 最大纹理大小和二次幂相关的规则。
我正在开发一款游戏(使用 libGDX,适用于 Windows、Linux 和 Android,基于 OpenGL 2)。我知道在 OpenGL 中涉及纹理大小时有一些技术 restrictions/requirements。但我听说过关于这些的相互矛盾的说法,所以我需要澄清一下:
- 最大纹理大小:我想这取决于设备,大约 2048x2048 应该保存在半现代设备上。正确的?这适用于纹理图集还是整个纹理对象?
- 二次幂:OpenGL 2 支持边长不是二次幂的纹理。但我听说使用这种老式大小的纹理可能更安全。正确吗?
- 位图大小:加载到游戏中的位图大小(例如
player_sprite.png
)是否与最大纹理大小或二次幂有关?
Maximum texture size: I guess it's device dependent and somewhat about 2048x2048 should be save on halfway modern devices. Correct? Does this apply to the texture atlas or the whole texture object?"
GLES2 规范规定最大纹理大小必须为 64x64 或更好。绝大多数 Android 和所有 iOS GLES2 设备都是 2048x2048 或更好的。如果您能够降低到 1024x1024,那么您在几乎所有 Android 设备上都是安全的。对于桌面目标,我认为 2048x2048 就可以了。
Power-of-two: OpenGL 2 supports textures with a edge length that is not a power of two. But I've heard that it might be safer to use such old-fashinod sized textures. Correct?
对于非二次方纹理,需要注意的是 mipmapping 和纹理环绕可能会受到限制。出于这个原因,我几乎一直使用二次方纹理。使用纹理图集是提高性能和减少纹理浪费的好方法,因为许多形状笨拙的纹理可以组合成一个大的二次方纹理。
Bitmap size: Does the size of the bitmap (e.g. player_sprite.png) that is loaded into the game have anything to do with this maximum texture size or this power-of-two thing?
不确定我是否理解问题。如果您要渲染纹理,则 png 可能会由引擎加载并放入 OpenGL 纹理中,此时它要遵守与 OpenGL 最大纹理大小和二次幂相关的规则。