Co to jest format pliku DDS?
Format pliku .dds (skrót od DirectDraw Surface) zawiera obrazy rastrowe używane przez DirectX. Standardowy plik .dds przechowuje tekstury, tła, cubemapy i mapy tekstur dla gier komputerowych oraz innych aplikacji 3D działających w czasie rzeczywistym.
Format może wykorzystywać kompresję w celu zmniejszenia rozmiaru pliku, choć jest ona w pełni opcjonalna. .dds wykorzystuje algorytm S3 Texture Compression (S3TC), obejmujący rodzinę BC1-BC3 (znaną również jako DXT1, DXT3 i DXT5). Nowsze tryby BC4-BC7, wprowadzone wraz z Direct3D 10, rozszerzają wsparcie o treści HDR, mapy normalnych (normal maps) oraz wysokiej jakości dane RGBA. Dane plików .dds mogą być dekompresowane i renderowane przy użyciu standardowych funkcji bibliotecznych i poleceń DirectX, a formaty z kompresją blokową są dekodowane natywnie przez GPU bez udziału procesora (CPU).
.dds został stworzony dla aplikacji renderujących w czasie rzeczywistym, takich jak gry komputerowe. Wstępnie skompresowane tekstury .dds pozwalają grom szybciej ładować zasoby i zmniejszają zużycie pamięci procesorów graficznych zgodnych z DirectX. Format obsługuje również osadzone, wstępnie obliczone łańcuchy mipmap, które poprawiają wydajność renderowania przy różnych odległościach widzenia.
.dds powstał wraz ze standardem DirectX 7.0. Każda nowsza wersja DirectX dodawała kolejne ulepszenia - DirectX 8.0 dodało wsparcie dla tekstur wolumetrycznych, Direct3D 10 dodało tablice tekstur i blok rozszerzenia DDS_HEADER_DXT10, a Direct3D 11 rozszerzyło BC7 o wysokiej jakości kompresję tekstur RGBA. Każdy plik .dds zaczyna się od cztero-bajtowej sygnatury (magic signature) DDS (wliczając spację na końcu) na offsetcie 0. Powiązane formaty tekstur to .PNG, .TGA i .KTX dla wieloplatformowych procesów produkcyjnych.
Bezpieczeństwo
RYZYKO: LOWDDS to pasywne dane obrazu bez kodu wykonywalnego, więc ich przeglądanie jest bezpieczne. Prawdziwe ostrzeżenia mają charakter techniczny: podczas edycji zapisuj z POPRAWNĄ kompresją (np. DXT5/BC3 lub BC7 dla koloru z alfą, BC5 dla map normalnych) i regeneruj mipmapy, inaczej tekstura będzie wyglądać źle lub zepsuje grę; konwersja do JPG niszczy mapy normalnych/specular. Tekstury gier/modów są często chronione prawem autorskim - szanuj licencje. Unikaj podejrzanych stron „DDS converter”, które dołączają adware do pobieranych plików; używaj wymienionych tutaj darmowych narzędzi.
Szczegóły formatu
w pigułceProgramy otwierające pliki DDS
Szczegóły techniczne
specyfikacja| Typ kontenera | Binarny kontener tekstur rastrowych obsługujący zarówno dane skompresowane blokowo, jak i nieskompresowane dane pikseli |
| Magiczne bajty | „DDS ” (hex 44 44 53 20) na offsetcie 0, wliczając spację na końcu - obecne w każdym poprawnym pliku .dds |
| Struktura nagłówka | 4-bajtowy magic + 124-bajtowy DDS_HEADER; pliki używające rozszerzenia DX10 dodają blok DDS_HEADER_DXT10 bezpośrednio po nim |
| Formaty kompresji blokowej | BC1 (DXT1), BC2 (DXT3), BC3 (DXT5), BC4, BC5, BC6H (HDR), BC7 (wysoka jakość RGBA) |
| Formaty nieskompresowane | Obsługiwane - RGBA8888, A8L8, R16G16B16A16F i inne surowe układy pikseli mogą być przechowywane bez kompresji |
| Obsługa mipmap | Wstępnie obliczony łańcuch mipmap osadzony w pojedynczym pliku; liczba mipmap zapisana w DDS_HEADER.dwMipMapCount |
| Obsługa map sześciennych (Cube map) | Sześć tekstur ścian sześcianu zakodowanych w jednym pliku; oznaczone bitami DDSCAPS2_CUBEMAP w DDS_HEADER |
| Tekstury wolumetryczne | Tekstury 3D (wolumetryczne) obsługiwane od DirectX 8.0; warstwy przechowywane sekwencyjnie dla każdego poziomu mip |
| Tablice tekstur | Tablica warstw tekstur przechowywana w jednym pliku, dostępna poprzez rozszerzenie nagłówka DX10 (Direct3D 10+) |
| Kompatybilność z GPU | Formaty skompresowane blokowo są dekodowane natywnie przez GPU, co pozwala na bezpośrednie przesyłanie bez dekompresji przez CPU |
| Obsługa HDR | BC6H przechowuje dane luminancji HDR o połowicznej precyzji zmiennoprzecinkowej (FP16) dla renderowania opartego na fizyce (PBR) |
| Typ MIME | image/vnd-ms.dds |
| FourCC nagłówka DX10 | Pliki z rozszerzeniem DX10 posiadają token FourCC „DX10” w polu dwFourCC struktury DDS_PIXELFORMAT |
| Typowy przypadek użycia | Renderowanie 3D w czasie rzeczywistym: tekstury silników gier, skyboxy, mapy normalnych, mapy szorstkości/metaliczności PBR |
| Wydano | DirectX 7 (1999); modern DX10 header extension added with DirectX 10 (2006) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | learn.microsoft.com |
Konwersje DDS
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki DDS.