我明白,当使用OpenGL 2.0和libGDX时,我的纹理图像必须是2的幂。这在此页上陈述https://github.com/libgdx/libgdx/wiki/Textures,-textureregion-and-spritebatch。LibGDX,OpenGL 2.0和纹理必须是2的幂?
我不明白的一件事情是,这并非总是如此。我正在创建一个具有启动画面的应用程序,并且我使用的纹理直接在类声明(屏幕)中加载,如下所示;
private TextureRegion textureRegion = new TextureRegion(
new Texture(Gdx.files.internal("images/splashLogo.png"))
);
此图片的尺寸为133 x 23,显然不是两个幂;但是,一切都很好。
在我的游戏中,我使用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);
}
}
质地512×512,并且如果它不是,则textureRegion不显示。
为什么在一些纹理上有差异,必须是两个大小的权力,而其他一些则不然?
你好Xoppa先生,我冒昧地从LibGDX维基页面更新了页面'Textures,textureregion和spritebatch',用你的答案带来了intel,因为那里的信息已经过时了。 –