2012-04-09 9 views
6

stare silniki gier wyznaczają pierwszy kolor palety obrazu jako przezroczysty kolor. jest sposób na to samo z libGDX?libGDX: traktuj pierwszy kolor w palecie jako przezroczysty kolor

Próbowałem załadować zdjęcie i zastąpienie pierwszego koloru palete wartością 0x00000000. jednak ponieważ piksele są albo nieprzezroczyste, albo przezroczyste, nie potrzebuję wartości alfa, więc mogłem zaoszczędzić dużo pamięci używając RGB888 zamiast RGBA8888. Przeglądam dokumentację gdx i opengl dla innych opcji mieszania i znalazłem Gdx.gl20.glBlendColor i funkcję setBlendFunction zestawu SpriteBatch. ale zmieniają tylko wartości używane w równaniach mieszania.

z góry dzięki :)

+0

nie wiem o sposób to zrobić, i nie jestem pewien, dlaczego musisz. Myślę, że większość powierzchni graficznych ma format 32-bitowy, więc nawet jeśli załadujesz obrazy 24-bitowe, po prostu się skonwertuje. Najlepiej jest po prostu użyć RGBA8888, chyba że zaczynasz brakować pamięci. –

Odpowiedz

3

narysować textureRegion przejrzysty użyć rutynowych takiego:

Color c = batch.getColor(); 
    batch.setColor(1, 1, 1, alpha); 
    batch.draw(....); 
    batch.setColor(c); 
Powiązane problemy