Czy powinienem używać wstępnie pomnożonej alfa? Czytając artykuł Toma Forsytha, wydaje się on nobrainer. Wstępnie zwielokrotniona alfa (mieszanie dodatków AKA) jest lepsza pod każdym względem.
Wydaje się jednak, że wstępnie pomnożona alfa ma jedną poważną wadę, nie jest dobrze obsługiwana za pomocą narzędzi.
Czy używałeś / aś wcześniej pomnożonej alfa?
W jaki sposób obsługiwane jest narzędzie?
W szczególności nie sądzę, aby gimp dobrze edytował wstępnie pomnożone obrazy alfa. Czy są jakieś wtyczki GIMP do eksportu wstępnie pomnożonej wersji alfa? Co powiesz na narzędzie zewnętrzne?
Odpowiedzi:
Obecnie używam XNA 3.1 z wstępnie zmultiplikowaną alfa (natywna obsługa Premultiplied Alpha została dodana w 4.0).
Głównie oszczędza mi to czasu i upewniam się, że przezroczyste obszary moich zdjęć mają właściwe kolory. Przesyłam również do Silverlight, który domyślnie wykonuje multiplikację.
XNA ma potok treści, który sprawia, że dodawanie wstępnie przetworzonych wstępnych procesów alfa jest super łatwe.
Ten link zawiera kod do wykonania konwersji. Dla każdego piksela:
Wiele można powiedzieć o potoku treści. Jeśli nie korzystasz z XNA, ale korzystasz z Visual Studio, możesz sam go połączyć . Wszelkie inne IDE / procesy kompilacji również powinny być w stanie.
I na koniec, jeśli nie masz etapu przetwarzania treści w swojej kompilacji (a więc istnieje duże prawdopodobieństwo, że nie masz dużo treści), równie łatwo możesz wykonać wstępne mnożenie w czasie wykonywania po załadowaniu tekstur. Doda to pewien stały czynnik do czasu ładowania tekstury.
(Jeśli implikacja nie była jasna: prawdopodobnie nie powinieneś edytować wstępnie zmultiplikowanych obrazów alfa. Wyeksportuj je wstępnie pomnożonych, jeśli możesz, lub lepiej je wstępnie przetworzyć.)
źródło
Jeśli akurat używasz XNA, istnieje spore wsparcie dla wstępnie pomnożonej alfa. Zwykle konwersja odbywa się w potoku treści, ale nic nie stoi na przeszkodzie, abyś zrobił to sam.
źródło
Domyślnie używam wstępnie pomnożonej alfa w moim silniku (artysta może wymusić niepoprawnie pomnożoną w pliku definicji materiału, jeśli jest to potrzebne do jakiegoś specjalnego efektu)
Narzędzia, jak zauważyłeś, nie radzą sobie dobrze ze wstępnie pomnożoną alfą - artysta może ustawić kanały kolorów i alfa całkowicie niezależnie. Skonfigurowałem rzeczy, aby mój artysta mógł tworzyć obrazy tekstur z nieprzygotowanym alfa (co wydaje się łatwiejsze w mózgach artystów), a narzędzie, które konwertuje na format tekstury silnika, domyślnie mnoży alfa. Istnieje przełącznik, który może zostać wygenerowany niepoprawnie, jeśli jest absolutnie potrzebny.
źródło