2013-07-15 16 views
7

Farklı durumlar için farklı dokulara sahip birkaç nesnem var, bu yüzden TexturePacker ile yapılmış bir TextureAtlas kullanıyorum ve ihtiyacım olan TextureRegion yeniden boyutlandırıyorum. Yeniden boyutlandırmak zorundayım çünkü sadece hem 720p hem de 1080p'yi desteklemeye çalışmıyorum, ancak bazı nesnelerim, kartın genişliği ve yüksekliğine göre yeniden boyutlandırılan karolar veya imleçler. Ekranın aynı yüzdesini işgal. Bir Texture ileLibGDX: Ölçeklendirilmiş bir TextureRegion Filtreleme

, sadece bunu yapabilirsiniz:

texture.setFilter(TextureFilter.Linear, TextureFilter.Linear); 

Ancak, filtre ayarlandığını seçeneği yoktur bir TextureRegion kullanıyorum zaman. Bu, TextureRegion'un keskin, bloklu ve pürüzlü olarak yeniden boyutlandırılmasıyla sonuçlanır. Güzel bir ölçeklendirme değil ve anti-takma adı hiç de yok gibi görünüyor.

Bu oldukça sinir bozucu, çünkü grafikler hazırlarken yeterince kötüyüm ve şimdi yaptığım şeyi beğendiğimde bile berbat görünüyor. Texture yerine bir TextureRegion kullanarak TextureFilter.Linear etkisini çoğaltmak için ne yapabilirim?

cevap

13

.atlas dosyanızı açabilir ve filter değerini Linear, Linear olarak değiştirebilirsiniz. Veya bölgenin ait olduğu dokuya erişmek için region.getTexture()'u kullanabilir, daha sonra setFilter(...)'u arayabilirsiniz. Eğer GDx-araçlarını kullanarak ambalaj halinde

+0

.altas dosyasını manuel olarak değiştirmekten kaçınmak için görüntüleri her paketlediğimizde şunu kullanabiliriz: https://github.com/libgdx/libgdx/wiki/Texture-packer# yapılandırma –

0

o zaman seçenekle

Settings settings = new Settings(); 
    settings.paddingX = 2; 
    settings.paddingY = 2; 
    settings.minWidth = 32; 
    settings.minHeight = 32; 
    settings.maxHeight = 1024; 
    settings.maxWidth = 1024; 
    settings.stripWhitespaceX = true; 
    settings.stripWhitespaceY = true; 
    settings.filterMag = TextureFilter.Nearest; 
    settings.filterMin = TextureFilter.Nearest; 
    settings.flattenPaths = true; 

    TexturePacker2.process(settings, "input directory", "output directory","packName"); 

    System.out.println("PackTextures->main finished."); 

ayarlamak zorunda veya doku-Packer-gui.jar kullanıyorsanız o zaman doğrusal (dk) ve doğrusal (onay kutusunu işaretleyin max) ve gidecekseniz ...