Usuwanie tła oddziela obiekt od otoczenia, dzięki czemu można go umieścić na przezroczystości, zamienić scenę lub wkomponować w nowy projekt. Pod maską szacujesz maskę alfa — nieprzezroczystość na piksel od 0 do 1 — a następnie komponujesz pierwszy plan z użyciem kanału alfa na czymś innym. To jest matematyka z Porter–Duff i przyczyna typowych pułapek, takich jak „frędzle” i alfa prosta a premultiplikowana. Praktyczne wskazówki dotyczące premultiplikacji i koloru liniowego można znaleźć w notatkach Win2D firmy Microsoft, Sørena Sandmanna i opracowaniu Lomonta na temat mieszania liniowego.
Jeśli możesz kontrolować przechwytywanie, pomaluj tło na jednolity kolor (często zielony) i wyklucz ten odcień. Jest to szybkie, sprawdzone w filmie i telewizji oraz idealne do wideo. Kompromisy to oświetlenie i garderoba: kolorowe światło rozlewa się na krawędzie (zwłaszcza włosy), więc użyjesz narzędzi do usuwania rozlania, aby zneutralizować zanieczyszczenie. Dobre wprowadzenia obejmują dokumentację Nuke, Mixing Light i praktyczne demo Fusion.
W przypadku pojedynczych obrazów z nieuporządkowanym tłem, algorytmy interaktywne potrzebują kilku wskazówek od użytkownika — np. luźnego prostokąta lub gryzmołów — i tworzą ostrą maskę. Kanoniczną metodą jest GrabCut (rozdział książki), który uczy się modeli kolorów dla pierwszego planu/tła i iteracyjnie wykorzystuje cięcia grafowe do ich rozdzielenia. Podobne pomysły zobaczysz w Zaznaczaniu pierwszego planu w GIMP opartym na SIOX (wtyczka ImageJ).
Matowanie rozwiązuje problem częściowej przezroczystości na delikatnych granicach (włosy, futro, dym, szkło). Klasyczne matowanie w formie zamkniętej przyjmuje trimapę (zdecydowanie-pierwszy plan/zdecydowanie-tło/nieznane) i rozwiązuje układ liniowy dla alfy z dużą dokładnością krawędzi. Nowoczesne głębokie matowanie obrazu uczy sieci neuronowe na zbiorze danych Adobe Composition-1K (dokumentacja MMEditing) i jest oceniane za pomocą metryk takich jak SAD, MSE, Gradient i Connectivity (wyjaśnienie benchmarku).
Powiązane prace nad segmentacją są również przydatne: DeepLabv3+ udoskonala granice za pomocą kodera-dekodera i splotów atrous (PDF); Mask R-CNN generuje maski dla poszczególnych instancji (PDF); a SAM (Segment Anything) to sterowany promptami model podstawowy, który generuje maski w trybie zero-shot na nieznanych obrazach.
Prace akademickie raportują błędy SAD, MSE, Gradient i Connectivity na Composition-1K. Jeśli wybierasz model, szukaj tych metryk (definicje metryk; sekcja metryk Background Matting). W przypadku portretów/wideo MODNet i Background Matting V2 są skuteczne; w przypadku ogólnych obrazów „obiektów wyróżniających się”, U2-Net jest solidną podstawą; w przypadku trudnej przezroczystości FBA daje lepsze rezultaty.
Format kompresji DXT1, część rodziny DirectX Texture (DirectXTex), stanowi znaczący krok naprzód w technologii kompresji obrazu, zaprojektowanej specjalnie dla grafiki komputerowej. Jest to stratna technika kompresji, która równoważy jakość obrazu z wymaganiami dotyczącymi pamięci masowej, dzięki czemu jest wyjątkowo dobrze dostosowana do aplikacji 3D w czasie rzeczywistym, takich jak gry, w których zarówno przestrzeń dyskowa, jak i przepustowość są cennymi towarami. W swojej istocie format DXT1 kompresuje dane tekstury do ułamka jej pierwotnego rozmiaru bez konieczności dekompresji w czasie rzeczywistym, zmniejszając w ten sposób zużycie pamięci i zwiększając wydajność.
DXT1 działa na blokach pikseli, a nie na pojedynczych pikselach. Dokładniej przetwarza bloki 4x4 pikseli, kompresując każdy blok do 64 bitów. To podejście, kompresja oparta na blokach, umożliwia DXT1 znaczne zmniejszenie ilości danych potrzebnych do przedstawienia obrazu. Istota kompresji w DXT1 polega na jego zdolności do znalezienia równowagi w reprezentacji kolorów w każdym bloku, zachowując w ten sposób jak najwięcej szczegółów przy jednoczesnym osiągnięciu wysokich współczynników kompresji.
Proces kompresji DXT1 można podzielić na kilka kroków. Po pierwsze, identyfikuje dwa kolory w bloku, które najlepiej reprezentują ogólny zakres kolorów bloku. Kolory te są wybierane na podstawie ich zdolności do objęcia zmienności kolorów w bloku i są przechowywane jako dwa 16-bitowe kolory RGB. Pomimo mniejszej głębi bitowej w porównaniu z oryginalnymi danymi obrazu, ten krok zapewnia zachowanie najważniejszych informacji o kolorze.
Po określeniu dwóch kolorów podstawowych DXT1 używa ich do wygenerowania dwóch dodatkowych kolorów, tworząc łącznie cztery kolory, które będą reprezentować cały blok. Te dodatkowe kolory są obliczane za pomocą interpolacji liniowej, procesu, który miesza dwa kolory podstawowe w różnych proporcjach. Dokładniej, trzeci kolor jest generowany przez równomierne zmieszanie dwóch kolorów podstawowych, podczas gdy czwarty kolor jest albo mieszanką faworyzującą pierwszy kolor, albo czystą czernią, w zależności od wymagań dotyczących przezroczystości tekstury.
Po określeniu czterech kolorów następny krok obejmuje mapowanie każdego piksela w oryginalnym bloku 4x4 do najbliższego koloru spośród czterech wygenerowanych kolorów. To mapowanie odbywa się za pomocą prostego algorytmu najbliższego sąsiada, który oblicza odległość między oryginalnym kolorem piksela a czterema kolorami reprezentatywnymi, przypisując piksel do najbliższego dopasowania. Proces ten skutecznie kwantyzuje oryginalną przestrzeń kolorów bloku do czterech różnych kolorów, co jest kluczowym czynnikiem w osiągnięciu kompresji DXT1.
Ostatnim krokiem w procesie kompresji DXT1 jest kodowanie informacji o mapowaniu kolorów wraz z dwoma oryginalnymi kolorami wybranymi dla bloku. Dwa oryginalne kolory są przechowywane bezpośrednio w skompresowanych danych bloku jako wartości 16-bitowe. Tymczasem mapowanie każdego piksela do jednego z czterech kolorów jest kodowane jako seria indeksów 2-bitowych, przy czym każdy indeks wskazuje na jeden z czterech kolorów. Indeksy te są pakowane razem i obejmują pozostałe bity 64-bitowego bloku. Powstały skompresowany blok zawiera zatem zarówno informacje o kolorze, jak i mapowanie niezbędne do odtworzenia wyglądu bloku podczas dekompresji.
Dekompresja w DXT1 jest zaprojektowana jako prosty i szybki proces, dzięki czemu jest wysoce odpowiednia dla aplikacji w czasie rzeczywistym. Prostota algorytmu dekompresji pozwala na jego wykonanie przez sprzęt w nowoczesnych kartach graficznych, co dodatkowo zmniejsza obciążenie procesora i przyczynia się do wydajności tekstur skompresowanych DXT1. Podczas dekompresji dwa oryginalne kolory są pobierane z danych bloku i używane wraz z indeksami 2-bitowymi do odtworzenia koloru każdego piksela w bloku. W razie potrzeby ponownie stosuje się metodę interpolacji liniowej w celu uzyskania kolorów pośrednich.
Jedną z zalet DXT1 jest znaczna redukcja rozmiaru pliku, która może wynosić nawet 8:1 w porównaniu z nieskompresowanymi 24-bitowymi teksturami RGB. Ta redukcja nie tylko oszczędza miejsce na dysku, ale także zmniejsza czas ładowania i zwiększa potencjał różnorodności tekstur w ramach danego budżetu pamięci. Co więcej, korzyści wydajnościowe DXT1 nie ograniczają się do oszczędności pamięci masowej i przepustowości; poprzez zmniejszenie ilości danych, które muszą być przetwarzane i przesyłane do procesora graficznego, przyczynia się również do szybszych prędkości renderowania, co czyni go idealnym formatem do gier i innych aplikacji intensywnie korzystających z grafiki.
Pomimo swoich zalet DXT1 nie jest pozbawiony ograniczeń. Najbardziej zauważalnym jest potencjał widocznych artefaktów, szczególnie w teksturach o wysokim kontraście kolorów lub złożonych szczegółach. Artefakty te wynikają z procesu kwantyzacji i ograniczenia do czterech kolorów na blok, które mogą nie dokładnie reprezentować pełnego zakresu kolorów oryginalnego obrazu. Ponadto wymóg wyboru dwóch kolorów reprezentatywnych dla każdego bloku może prowadzić do problemów z pasmowaniem kolorów, w których przejścia między kolorami stają się zauważalnie gwałtowne i nienaturalne.
Co więcej, obsługa przezroczystości w formacie DXT1 dodaje kolejną warstwę złożoności. DXT1 obsługuje 1-bitową przezroczystość alfa, co oznacza, że piksel może być całkowicie przezroczysty lub całkowicie nieprzezroczysty. To binarne podejście do przezroczystości jest implementowane poprzez wybranie jednego z wygenerowanych kolorów do reprezentowania przezroczystości, zwykle czwartego koloru, jeśli pierwsze dwa kolory są wybrane tak, że ich kolejność liczbowa jest odwrócona. Chociaż pozwala to na pewien poziom przezroczystości w teksturach, jest ona dość ograniczona i może prowadzić do ostrych krawędzi wokół przezroczystych obszarów, co czyni ją mniej odpowiednią dla szczegółowych efektów przezroczystości.
Programiści pracujący ze skompresowanymi teksturami DXT1 często stosują różne techniki w celu złagodzenia tych ograniczeń. Na przykład staranny projekt tekstury i zastosowanie ditheringu może pomóc zmniejszyć widoczność artefaktów kompresji i pasmowania kolorów. Ponadto, zajmując się przezroczystością, programiści mogą zdecydować się na użycie oddzielnych map tekstur dla danych przezroczystości lub wybrać inne formaty DXT, które oferują bardziej niuansową obsługę przezroczystości, takie jak DXT3 lub DXT5, dla tekstur, w których wysokiej jakości przezroczystość jest kluczowa.
Szerokie przyjęcie DXT1 i jego włączenie do interfejsu API DirectX podkreśla jego znaczenie w dziedzinie grafiki w czasie rzeczywistym. Jego zdolność do utrzymania równowagi między jakością a wydajnością uczyniła go podstawą w branży gier, gdzie efektywne wykorzystanie zasobów jest często kluczową kwestią. Poza grami DXT1 znajduje zastosowanie w różnych dziedzinach wymagających renderowania w czasie rzeczywistym, takich jak rzeczywistość wirtualna, symulacja i wizualizacja 3D, podkreślając jego wszechstronność i skuteczność jako formatu kompresji.
W miarę postępu technologicznego ewolucja technik kompresji tekstur trwa, a nowsze formaty starają się rozwiązać ograniczenia DXT1, jednocześnie wykorzystując jego mocne strony. Postępy w sprzęcie i oprogramowaniu doprowadziły do rozwoju formatów kompresji, które oferują wyższą jakość, lepszą obsługę przezroczystości i bardziej wydajne algorytmy kompresji. Jednak dziedzictwo DXT1 jako pionierskiego formatu w kompresji tekstur pozostaje niekwestionowane. Jego zasady projektowania i kompromisy, które ucieleśnia między jakością, wydajnością i wydajnością pamięci masowej, nadal wpływają na rozwój przyszłych technologii kompresji.
Podsumowując, format obrazu DXT1 stanowi znaczący rozwój w dziedzinie kompresji tekstur, zapewniając skuteczną równowagę między jakością obrazu a zużyciem pamięci. Chociaż ma swoje ograniczenia, szczególnie w zakresie wierności kolorów i obsługi przezroczystości,
Ten konwerter działa w całości w Twojej przeglądarce. Po wybraniu pliku jest on wczytywany do pamięci i konwertowany do wybranego formatu. Następnie możesz pobrać przekonwertowany plik.
Konwersje rozpoczynają się natychmiast, a większość plików jest konwertowana w mniej niż sekundę. Większe pliki mogą zająć więcej czasu.
Twoje pliki nigdy nie są przesyłane na nasze serwery. Są one konwertowane w Twojej przeglądarce, a następnie pobierany jest przekonwertowany plik. Nigdy nie widzimy Twoich plików.
Obsługujemy konwersję między wszystkimi formatami obrazów, w tym JPEG, PNG, GIF, WebP, SVG, BMP, TIFF i innymi.
Ten konwerter jest całkowicie darmowy i zawsze będzie darmowy. Ponieważ działa w Twojej przeglądarce, nie musimy płacić za serwery, więc nie musimy pobierać od Ciebie opłat.
Tak! Możesz konwertować dowolną liczbę plików jednocześnie. Wystarczy wybrać wiele plików podczas ich dodawania.