Autor Wątek: Jak zapisać TARGA bez premultiplied Alpha?  (Przeczytany 1516 razy)

Offline MDW

  • Użytkownik
    • www.encore-games.com

  • +1
# Lipiec 11, 2015, 11:13:14
Może mi ktoś powiedzieć po jakiego grzyba GIMP zapisuje obrazki w TARGA z tym okropnym premultiplied alpha channel? Czarny "glow" wygląda paskudnie i przede wszystkim tekstura po użyciu wygląda inaczej niż ją narysowałem. Po co to jest robione? Mogę jakoś się tego pozbyć na etapie zapisu tekstury w programie graficznym czy trzeba to ręcznie modyfikować przy odczycie tekstury w swoim kodzie? W żadnym programie graficznym nie widziałem możliwości wybrania czy alpha ma być premultiplied. :(
« Ostatnia zmiana: Lipiec 11, 2015, 11:16:09 wysłana przez MDW »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline MDW

  • Użytkownik
    • www.encore-games.com

# Lipiec 11, 2015, 18:01:55
Posprawdzałem wartości pixeli i GIMP jednak nie zapisuje TARGA z RGBA premultiplied. :) Skasowałbym ten wątek ale nie znalazłem takiej możliwości (naprawdę jej nie ma?). Gdyby któryś z moderatorów go skasował to byłbym wdzięczny.
Przepraszam za zamieszanie.

Offline voytech

  • Użytkownik

# Lipiec 11, 2015, 18:21:35
Możesz pokazać jakieś przykładowe obrazki i podać w jaki sposób używasz gimpa? Nie wydaje mi się żeby eksporter TGA robił jakieś ekstra przekształcenia, być może całe psucie odbywa się już wcześniej.

Malowanie czarnym pędzlem na przeźroczystym tle daje takie rezultaty:
http://i.imgur.com/1NcBt3Z.png


Tzn. Na początku dałem "Add Alpha Channel", maznąłem pędzlem a następnie "Add Layer Mask" oraz "Transfer layers's alpha channel" ("Layer Alpha Channel" daje złe rezultaty). Po tym można dać "Remove Alpha channel" bo przezroczystość jest już w masce.

Na końcu dałem "Disable layer mask" i pokazało że pędzel na warstwach RGB ma ostre krawędzie. Być może tu leży przyczyna twoich problemów.

Offline MDW

  • Użytkownik
    • www.encore-games.com

# Lipiec 11, 2015, 22:31:36
Tak jak napisałem w odpowiedzi na własne pytanie - jednak GIMP zapisuje TARGĘ normalnie. Faktycznie nie modyfikuje wartości RGB. Dopiero jak zacząłem sprawdzać wartości RGB poszczególnych pixeli to widzę, że wszystko jest w porządku. Zmyliło mnie to, że w jakiejś tam testowej teksturze RGBA po przeskalowaniu jakiegoś tam mojego sprajta, dookoła dziur w teksturze było mocne przyciemnienie krawędzi. Tak mocne, że nie skapnąłem się, że to normalny efekt filtrowania. Wygląda to paskudnie ale nic się z tym nie da zrobić. :( Chyba, że wyłączyć filtrowanie. :)

Chciałem skasować ten wątek żeby nie robić zamieszania ale nie widzę tu możliwości kasowania założonych przez siebie wątków. :(

Dzięki za sprawdzenie!

Offline KriS

  • Użytkownik
    • KriS

# Lipiec 12, 2015, 11:12:31
Zmyliło mnie to, że w jakiejś tam testowej teksturze RGBA po przeskalowaniu jakiegoś tam mojego sprajta, dookoła dziur w teksturze było mocne przyciemnienie krawędzi. Tak mocne, że nie skapnąłem się, że to normalny efekt filtrowania. Wygląda to paskudnie ale nic się z tym nie da zrobić. :( Chyba, że wyłączyć filtrowanie. :)

Wystarczy abyś miał odpowiedni kolor w części tekstury z zerową alphą. Wtedy filtrowanie nie będzie przyciemniało na krawędziach dziur. Ewentualnie możesz użyć wspomnianego premultiplied alpha.