Nowy GEGL – 71 nowych operacji graficznych dla nadchodzącego GIMP-a
System przetwarzania grafiki GEGL, który jest podstawą GIMP-a, został zaktualizowany pierwszy raz od trzech lat. Na nową wersję 0.3.0 czekaliśmy długo, ale było warto. Silnik przynosi nowe operacje graficzne, optymalizacje i obsługę mipmap, czyli zoptymalizowanych, mniejszych grafik, które można będzie wykorzystać przy renderowaniu podglądu większych obrazów. Po zakończeniu testów w GIMP-ie 2.9 nowości z GEGL-a trafią do GIMP-a 2.10.
Spośród nowych operacji GEGL-a większość stanowią nowe implementacje znanych już filtrów GIMP-a, jak mieszanie kanałów, filtr górnoprzepustowy, skalowanie, zniekształcenia i usuwanie czerwonych oczu. Na liście znajduje się także możliwość zapisywania i odczytywania obrazów w formacie WebP. Z nowości należy wymienić „bezszwowe” klonowanie i odkształcenia (warp), które mają być wprowadzone do GIMP-a w wersji 2.10.
Niektóre z operacji zostały po drodze zoptymalizowane i poprawione. Ponadto wiele z nich zyskało wersję korzystającą z OpenCL, dzięki czemu można je wykonywać na karcie graficznej. Do niektórych filtrów należało dorobić nowy interfejs użytkownika, będzie także możliwość lekkiej ich modyfikacji – na przykład dodawania parametrów, które będą pokazywane przy pracy. Będzie możliwe także budowanie własnych metaoperacji. Ponownie zaimplementowane zostało rozmycie gaussowskie, które będzie teraz działać szybciej i dokładniej.
Jeśli GEGL przy uruchomieniu wykryje możliwość pracy na układzie graficznym z wykorzystaniem OpenCL-a, domyślnie postara się go wykorzystać. Ciekawostką jest eksperymentalna wielowątkowość, w której liczbę wątków ustawia użytkownik. Odpowiada za nie zmienna globalna GEGL_THREADS. Ustawienie czterech wątków z wiersza poleceń będzie więc wyglądać tak:
GEGL_THREADS=4 gimp-2.9
Oczywiście nie należy spodziewać się, że po wybraniu liczby wątków GEGL natychmiast będzie działał szybciej. Eksperymentalny charakter tej zmiany mówi nam, że możemy spodziewać się wszystkiego i lepiej przygotować się na najgorsze, a napotkane błędy i problemy raportować deweloperom. W osobnym wątku działa także system zapisujący na dysk, dzięki czemu GIMP nie będzie stawał w miejscu podczas zapisywania i eksportowania plików.
Mipmapy, czyli zoptymalizowane sekwencje tekstur, wykorzystywane są przede wszystkim przy teksturowaniu trójwymiarowych modeli, ale w nadchodzącym GIMP-ie posłużą do generowania podglądu bardzo dużych obrazów. Podczas pracy z ogromnymi plikami GEGL będzie dostarczał GIMP-owi pomniejszoną wersję obrazu, na której będzie można pracować szybciej i wygodniej. Wszelkie wprowadzone na podglądzie zmiany będą widoczne od razu, ale na oryginalny obraz będą wprowadzane w tle. W efekcie od strony użytkownika program wyda się szybszy i pozornie będzie płynnie pracował z obrazami, których rozmiar trzeba mierzyć w gigapikselach. Ta funkcja została wprowadzona „na próbę” i na razie nie wiadomo, czy trafi do GIMP-a 2.10. Jej losy zależą od społeczności.
Nowej wersji GEGL-a towarzyszy aktualizacja biblioteki babl, odpowiedzialnej za „tłumaczenie” informacji o kolorze zapisanych w różnych przestrzeniach barw. Nowa wersja możliwość pracy z przestrzeniami HSL i HSV, poprawiona została konwersja między CIE i LAB, a także operacje zmiennoprzecinkowe.
Opisane zmiany trafią niebawem do testowego GIMP-a 2.9, a część z nich następnie do stabilnego 2.10, wraz z nowym narzędziem przekształcenia i możliwością nakładania maski na grupę warstw. W międzyczasie musimy obejść się smakiem i korzystać ze stabilnego GIMP-a 2.8.