Sono uno sviluppatore Android, costruendo il mio primo gioco con LibGDX. Dopo aver letto A LOT, c'è ancora una cosa che non capisco.Usa Libgdx e TexturePacker con immagini xxxdpi distorti
Mi rendo conto che dovrei avere un set di immagini, per la massima risoluzione 2560x1440 (per impedire brutto ridimensionamento delle immagini non vettoriali).
sto usando TexturePacker mettere in valigia le mie immagini e anche utilizzando lineare lineare per ottenere la massima qualità:
TexturePacker.Settings settings = new TexturePacker.Settings();
settings.filterMin = Texture.TextureFilter.Linear;
settings.filterMag = Texture.TextureFilter.Linear;
settings.maxWidth = 4096;
settings.maxHeight = 2048;
TexturePacker.process(settings, inputDir, outputDir, packFileName);
ho impostato la mia macchina fotografica, come raccomandato in diversi SO di, per metri fissi e di evitare tutte le Roba PPM. From Screen's C'TOR:
mCamera = new OrthographicCamera();
mCamera.viewportWidth = 25.6f; ; // 2560/100
mCamera.viewportHeight = 14.4f ; // 1440/100
mCamera.position.set(mCamera.viewportWidth/2, mCamera.viewportHeight/2, 0f);
mCamera.update();
Come potete vedere ho scelto di lavorare con 1 metro = 100 pixel.
Ora, questo significa che dovrei disegnare i miei sprite con una dimensione 1/100, che sto facendo qui:
TextureAtlas atlas = new TextureAtlas(Gdx.files.internal("images/pack.atlas"));
mImage = atlas.createSprite("image"));
mImage.setSize(mImage.getWidth()/100 , mImage.getHeight()/100);
Questo funziona e le immagini vengono visualizzate come previsto. MA, sono distorti come l'inferno! un'immagine perfettamente rotonda sembra pixelata sui bordi e non rotonda.
Quindi, le mie domande sono:
- È questo il miglior prassi o dovrei lavorare in modo diverso?
- Sono corretto avendo solo le immagini di più alta qualità?
- La distorsione significa che il mio codice sta davvero ridimensionando lo sprite e in qualche modo libgdx lo ha ridimensionato di nuovo e danneggiato la qualità?
Grazie!
EDIT
sarò adattarsi @ risposte di Tenfour04 a (1) e (2).
Per quanto riguarda la (3), il problema è con Genymotion :(, la sua pixelating la partita. Ho prova su dispositivi reali con diverse risoluzioni e sembra perfetto.
Ciao grazie per la risposta dettagliata. (1) mi sono familiarizzato con questo e lo realizzerò ovviamente grazie. (2) suono intelligente e facile da fare con TexturePacker come mai non vedo alcun tutorial che menzioni questo metodo di lavoro? (3) Ho anche provato MipMapLinearLinear e altre opzioni ma lo sprite è ancora distorto. Quindi, da quello che stai dicendo potrei avere un altro problema? – Shirane85
Non so perché non è in molti tutorial. Il supporto è lì in TexturePacker. Magari pubblica una foto del tuo sprite distorto. Non sono sicuro che altro causerebbe ciò che hai descritto. – Tenfour04