Jestem programistą dla Androida, budując swoją pierwszą grę za pomocą LibGDX. Po przeczytaniu WIELU, wciąż jest jedna rzecz, której nie rozumiem.Używaj Libgdx i TexturePackera z obrazami xxxdpi zniekształconymi
Zdaję sobie sprawę, że powinienem mieć jeden zestaw obrazów, dla najwyższej rozdzielczości 2560x1440 (Aby zapobiec brzydkiemu skalowaniu nie obrazów wektorowych).
Używam TexturePacker pakować moje obrazy, a nawet stosując liniową liniową, aby uzyskać maksymalną jakość:
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);
mam ustawić aparat, zgodnie z zaleceniami w kilku SO-tych, do liczników stałych i uniknąć wszystkich PPM. Z ekranu 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();
Jak widać wybrałem pracę z 1 metrem = 100 pikseli.
Teraz, co oznacza, że powinny rysuję moje ikonek z 1/100 wielkości, co robię tutaj:
TextureAtlas atlas = new TextureAtlas(Gdx.files.internal("images/pack.atlas"));
mImage = atlas.createSprite("image"));
mImage.setSize(mImage.getWidth()/100 , mImage.getHeight()/100);
To działa i obrazy są wyświetlane zgodnie z przeznaczeniem. ALE, są one zniekształcone jak diabli! idealnie okrągły obraz wygląda piksele na krawędziach, a nie okrągły.
Więc moje pytania to:
- Jest to najlepsza praktyka czy mam działać inaczej?
- Czy poprawne jest posiadanie obrazów o najwyższej jakości?
- Czy zniekształcenie oznacza, że mój kod naprawdę redukuje sprite i jakoś libgdx ponownie go skaluje i obniża jakość?
Dzięki!
EDIT
będę dostosować @ odpowiedzi Tenfour04 do (1) i (2).
chodzi (3), problem jest z Genymotion :(, jego pixelating grę. Mam przetestować go na rzeczywistych urządzeń z kilku rozdzielczościach i wygląda idealnie.
Cześć dziękuję za szczegółową odpowiedź. (1) Jestem z tym zainteresowany i zamierzam go wdrożyć oczywiście dzięki. (2) dźwięk sprytny i łatwy do zrobienia z TexturePackerem, jak to możliwe, że nie widzę żadnego tutoriala, który wspomniałby o tej metodzie pracy? (3) Próbowałem także MipMapLinearLinear i innych opcji, ale ikonka nadal jest zniekształcona. Więc, z tego, co mówisz, mogę mieć inny problem? – Shirane85
Nie wiem, dlaczego nie znajduje się w wielu samouczkach. Wsparcie znajduje się w TexturePackerze. Może opublikuj zdjęcie swojego zniekształconego duszka. Nie jestem pewien, co jeszcze spowodowałoby to, co opisałeś. – Tenfour04