libgdx filtres de textures et de mappage
Lorsque je tente d'utiliser le filtrage de mappage dans LibGDX, aucune des images apparaissent.
Je suis nouveau sur LibGDX, et j'ai un simple 2d de la scène avec trois de rotation, l'échelle des cercles. Afin d'anti-alias, j'ai voulu utiliser linéaire filtrage. Pour les conseils, j'ai regardé cet article,qui dit que, pour fortement mis à l'échelle des images, un mappage peut être utilisé pour améliorer la vitesse ou de la qualité.
La première apparition inattendue, que, malgré le fait que toutes mes images ont été revus à la baisse, je ne vois qu'un filtre linéaire si la magFilter était linéaire. En d'autres termes:
Ce code va afficher un filtre linéaire pour minimisé les images:
parentTexture.setFilter(TextureFilter.Nearest, TextureFilter.Linear);
whlie ce code ne sera pas:
parentTexture.setFilter(TextureFilter.Linear, TextureFilter.Nearest);
qui semble à l'opposé de la libGDX fonction:
void com.badlogic.gdx.graphics.Texture.setFilter(TextureFilter minFilter, TextureFilter magFilter)
Ce serait me dérange pas, sauf qu'il indique que libgdx est mal (peu probable), l'article est mal (peu probable), ou je ne comprends pas la texture des filtres. Ce dernier paraît d'autant plus probable lorsque j'essaie de mappage des filtres.
Ce code provoque rien à afficher
parentTexture.setFilter(TextureFilter.MipMapLinearLinear, TextureFilter.Linear);
Ce code affiche, mais au plus proche de filtrage
parentTexture.setFilter(TextureFilter.Linear, TextureFilter.MipMapLinearLinear);
Toute explication de l'endroit où je me trompe serait grandement apprécié. J'ai cherché ailleurs, mais la texture des filtres dans libGDX est assez spécifique, donc, en plus de l'article, je n'ai pas trouvé beaucoup d'aide.
Vous devez vous connecter pour publier un commentaire.
J'ai eu ce même problème, et que la réparation s'est avéré être incroyablement simple. Lorsque vous créez un
Texture
, vous avez besoin de spécifier qu'il utilise des mipmaps.Tout ce que vous avez à faire est de passer un deuxième paramètre à la
Texture
constructeur comme suit:Texture myTexture = new Texture(Gdx.files.internal("myImage.png"), true);
Vous pouvez consulter toutes les
Texture
les constructeurs de classe dans l'API docs ici: http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/Texture.htmlAssetManager
ceci peut être réalisé par la mise enTextureParameter.genMipMaps
de vrai et en passant que la texture de paramètre àAssetManager
lors du chargement de la texture: libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/...TextureLoader.TextureParameter textureParameter = new TextureLoader.TextureParameter(); textureParameter.genMipMaps = true; assetManager.load(textureName, Texture.class, textureParameter);
,Comme Mitesh dit dans son réponse mipmaps filtres ne fonctionne pas parce que vous n'êtes pas raconter Libgdx pour générer des mipmaps.
si vous êtes à l'aide de gestionnaire des biens, le code sera quelque chose comme ceci
Il peut y avoir plusieurs problèmes avec votre image:
Il doit être une puissance de 2, si vous utilisez une image avec la taille comme 354X420, ça ne marchera pas. Dans ce cas, vous devez prendre une image de 512X512 ou de toute autre puissance de 2.
Lorsque vous souhaitez activer le filtrage de Mappage, puis vous devez l'activer à l'aide de booléenne genMipMaps qui raconte libgdx si vous souhaitez générer des mapmaps.
Essayez d'utiliser le même minFilter et maxFilter. J'ai eu un problème similaire et si je mets
TextureFilter.Linéaire,
TextureFilter.Linéaire
ou les deux MipMap le problème est résolu.
Espérons que cette aide.