【发布时间】:2015-01-16 10:37:58
【问题描述】:
我知道在使用 OpenGL 2.0 和 libGDX 时,我的纹理图像必须是 2 的幂。这在此页面https://github.com/libgdx/libgdx/wiki/Textures,-textureregion-and-spritebatch 上进行了说明。
我无法理解的一件事是,这并不总是正确的。我正在创建一个具有启动画面的应用程序,并且我使用的纹理直接加载到类声明(屏幕)中,如下所示;
private TextureRegion textureRegion = new TextureRegion(
new Texture(Gdx.files.internal("images/splashLogo.png"))
);
此图像的尺寸为 133 x 23,显然不是 2 的幂;但是,一切都很好。
在我的游戏中,我使用 AssetManager 将纹理等加载到我的游戏中,但我发现我使用的纹理大小必须为 ^2,例如 128x32、512x512 等,否则它们不起作用?
下面是我的资产管理器提供的一组纹理示例;
shapes = TextureRegion.split(Assets.assetManager.get("images/shapeSprite.png", Texture.class), 64, 64);
for (TextureRegion[] shapeSet: shapes) {
for (TextureRegion shape: shapeSet) {
shape.flip(false, true);
}
}
纹理为 512x512,如果不是,则不显示纹理区域。
为什么有些纹理的大小必须是 2 次方,而有些则没有?
【问题讨论】: