Jeśli kiedykolwiek pobierałeś paczkę tekstur HD do emulatora, na pewno zauważyłeś, że coraz częściej grafiki zapisane są nie w klasycznym PNG, tylko w tajemniczo brzmiącym formacie DDS. Dla niewtajemniczonych może to wyglądać jak fanaberia modderów, ale w rzeczywistości różnica między tymi formatami jest kolosalna — zwłaszcza dla wydajności i szybkości działania emulatorów.
Dziś przyjrzymy się, czym tak naprawdę różnią się pliki DDS i PNG, dlaczego jedne są lepsze do edycji, a drugie do użycia w grach, oraz czemu emulatorom zdecydowanie bliżej do karty graficznej niż do Photoshopa.
Czym jest PNG?
PNG (Portable Network Graphics) to format stworzony głównie do przechowywania obrazów w wysokiej jakości, z pełnym zachowaniem szczegółów. Jest bezstratny, czyli każda konwersja nie degraduje obrazu.
Świetnie nadaje się do:
- edycji tekstur,
- tworzenia przezroczystości (kanał alfa),
- grafiki na stronach internetowych i interfejsach.
Jednak z punktu widzenia emulacji, PNG ma pewną wadę — jego zawartość nie jest zoptymalizowana pod GPU. Gdy emulator ładuje PNG, musi:
- zdekodować go do zwykłego obrazu w RAM-ie,
- przekonwertować dane pikseli do formatu zrozumiałego przez kartę graficzną (np. RGBA, DXT1, BC7),
- dopiero wtedy załadować go do VRAM-u.
Efekt? Dłuższe ładowanie i większe obciążenie procesora.
Czym jest DDS?
DDS (DirectDraw Surface) to format opracowany przez Microsoft jako natywny format tekstur dla kart graficznych. W odróżnieniu od PNG, nie przechowuje „czystego obrazu”, tylko gotowe dane tekstury w takim układzie, w jakim GPU potrafi je natychmiast przetwarzać.
- DDS obsługuje różne typy kompresji, m.in.:
- DXT1 / BC1 – dla tekstur bez kanału alfa,
- DXT5 / BC3 – z przezroczystością,
- BC7 – nowoczesny, wysokiej jakości standard stosowany w nowych grach i emulatorach.
Dzięki temu emulator nie musi nic dekodować — po prostu wczytuje teksturę wprost do pamięci VRAM, a GPU zaczyna z nią pracować natychmiast.
Dlaczego modderzy i emulatorzy wolą DDS
Emulatory, takie jak PCSX2, Dolphin, Citra czy Ryujinx, coraz częściej wspierają ładowanie tekstur w formacie DDS, bo to drastycznie skraca czas ładowania i zmniejsza zużycie pamięci.
W praktyce różnice potrafią być ogromne — gra z paczką PNG może wczytywać się kilka sekund dłużej, a w trakcie gry powodować chwilowe przycięcia przy doczytywaniu nowych tekstur.
DDS eliminuje ten problem, bo:
- jest już w odpowiedniej kompresji dla GPU,
- nie wymaga przetwarzania przez CPU,
Kiedy PNG nadal ma sens
Oczywiście, nie oznacza to, że PNG całkowicie odchodzi do lamusa.
Ten format wciąż jest niezastąpiony, gdy:
- przygotowujesz lub edytujesz tekstury w Photoshopie / GIMP-ie,
- chcesz zachować pełną jakość bez strat,
- emulator sam konwertuje tekstury do DDS przy pierwszym uruchomieniu.
Dopiero po zakończeniu pracy warto takie pliki przekonwertować np. za pomocą texconv, ImageMagick lub compressonator-cli do formatu DDS (np. BC7), by były gotowe do użycia w emulatorze.
Podsumowanie
Jeśli masz do wyboru PNG lub DDS, zapamiętaj prostą zasadę:
➡ PNG to format dla ludzi — do edycji, pracy i przechowywania.
➡ DDS to format dla maszyn — do renderowania, wydajności i szybkości.
Dlatego właśnie paczki tekstur HD do emulatorów coraz częściej pojawiają się w formacie DDS – to naturalna ewolucja w stronę optymalizacji.
Emulator nie musi być artystą – on ma działać szybko, a DDS daje mu dokładnie to, czego potrzebuje: gotową, zoptymalizowaną grafikę, którą GPU połyka na raz.

1 komentarz
Akurat w przypadku emulatorów, gdzie pojedyńcza tekstura ma średnio po kilka MB i ładowanych jednocześnie jest tylko kilka, przy dysku SSD imo nie ma sensu bawić się w *.dds.