Kaikista DDS tiedostoista
Microsoftin tekstuuriformaatti peleille ja 3D-sovelluksille
DDS tarkoittaa DirectDraw Surfacea ja on Microsoftin kehittämä tiedostomuoto tekstuurien ja pintatietojen tallentamiseen 3D-sovelluksissa. Muoto otettiin käyttöön yhdessä DirectX 7:n kanssa pakattujen ja pakkaamattomien tekstuurien tallentamista varten[1]. Tiedoston otsikko on peräisin suoraan DirectDraw 7 -rakenteista, ja vaikka DirectDraw itse on jo kauan sitten luokiteltu vanhentuneeksi sovellusliittymäksi, tiedostomuoto elää edelleen ja on yhä yleisessä käytössä[2]. Jokainen, joka on joskus purkanut pelitiedostoja tai jopa luonut modifikaatioita peleihin, on melko varmasti törmännyt .dds-tiedostoihin – eikä ehkä ole pystynyt katsomaan niitä suoraan.
Tekninen tausta
Tuolloin näytönohjaimissa oli usein vain 8 Mt videomuistia, ja pakkaamattomat tekstuurit kuluttivat sen sekunneissa. Ratkaisun toi S3 Graphics, joka kehitti S3 Texture Compression (S3TC) -menetelmän, jolla tekstuuritiedostot voitiin pienentää neljäsosaan tai kuudenneksiksi alkuperäisestä koostaan ilman, että näytönohjaimen tarvitsi purkaa tiedostoja työläästi ennen renderointia. Maaliskuussa 1998 Microsoft lisensoi tämän teknologian DirectX[3]:lle. S3TC oli alun perin kehitetty Savage 3D -näytönohjaimelle, ja sille[4] oli haettu patenttia vuonna 1997. Microsoft päätti valita juuri tämän algoritmin, koska se tarjosi parhaan kuvanlaadun ja oli edullinen toteuttaa[3] laitteistossa. DirectX 7:n myötä pakatut tekstuuritiedostot saivat oman säilytysmuotonsa: DDS-formaatin.
Muodon jatkokehitys
Se, mikä alkoi vuonna 1999 yksinkertaisena tekstuurikonttina, laajeni voimakkaasti vuosien mittaan. DirectX 8.0:n myötä lisättiin tuki volyymitekstuureille, ja Direct3D 10:stä lähtien tuetaan myös [1]tekstuurijonoja. Samalla otettiin käyttöön laajennettu otsikko (DX10-laajennus), joka ratkaisi melko ikävän ongelman: Direct3D 9:n ja Direct3D 10:n formaattinimitykset olivat ristiriidassa keskenään, mikä olisi ilman uutta otsikkoa johtanut [2]epäselvyyksiin lataamisen yhteydessä. DirectX 11:n myötä lisättiin uusia pakkausmenetelmiä, jotka mahdollistavat muun muassa HDR-tekstuureja (realistisia valaistusolosuhteita varten) ja yleisesti paremman väritarkkuuden.
DDS-kuva vai konttiformaatti?
DDS ei ole niinkään klassinen kuvamuoto kuin pikemminkin konttimuoto. Yksittäinen DDS-tiedosto voi sisältää yksinkertaisten 2D-tekstuurien lisäksi myös kuutiokarttoja (kuuden sivun ympäristöheijastuksia, joita tarvitaan esimerkiksi taivaalle tai heijastaville pinnoille), volyymitekstuureja (sumu- tai savuefektejä varten) ja kokonaisia mipmap-ketjuja. Viimeksi mainitut ovat tekstuurivariaatioita, joiden resoluutio pienenee etäisyyden kasvaessa, jotta kaukana oleva objekti ei tarvitse ladata samaa korkean resoluution tekstuuria kuin kameran edessä oleva objekti. Viisi alkuperäistä pakkausformaattia DXT1–DXT5 nimettiin Direct3D 10:ssä uudelleen [4]BC1–BC3:ksi, vaikka DXT2:ta ja DXT4:ää käytettiin käytännössä tuskin lainkaan.
DDS-tiedostojen käyttöalueet
Muotoa tukee käytännössä jokainen suuri pelimoottori, mukaan lukien Unreal Engine, Unity ja CryEngine. Tyypillisiä käyttökohteita ovat diffuusikartat (pinnan varsinainen väritys), normaalikartat (simuloituja pinnan yksityiskohtia, kuten uria tai kuoppia), spekulaarikartat (kiillon ja heijastusten hallinta) sekä kaikki muut tekstuurityypit, joita moderni 3D-peli sisältää.
Vaikka DDS kehitettiin alun perin DirectX:ää varten, sitä voidaan käyttää myös OpenGL:ssä OpenGL-laajennuksen [4]GL_EXT_texture_compression_s3tc kautta. Joten jos luulet, että DDS on puhtaasti Windows-asia, olet väärässä. Formaattia käytetään myös pelialan ulkopuolella, esimerkiksi arkkitehtuurin visualisoinneissa tai simulaatioissa.
Ohjelmistotuki
DDS-tiedostojen avaamiseen ja muokkaamiseen on saatavilla useita ohjelmia, kuten Adobe Photoshop (laajennuksen avulla), GIMP (DDS-laajennuksen avulla), Paint.NET ja IrfanView. Microsoft ylläpitää GitHubissa omia avoimen lähdekoodin kirjastoja, DirectXTex ja DirectXTK, jotka tukevat formaattia täysin. Vaihtoehtoisesti DDS-tiedostot voidaan muuntaa suoraan selaimessa yleisiin formaatteihin, kuten PNG tai JPG, sivustolla fi.file-converter-online.com.
Lähteet
[1] Microsoft Learn: DDS – Win32-sovellukset
[2] Chuck Walbourn / Microsoft DirectX SDK -blogi: DDS-tiedostomuoto elää
[3] Microsoft lisensoi 3D-grafiikkateknologiaa S3 Incorporatedilta
[4] Wikipedia: S3-tekstuuripakkaus
Muunna, avaa ja muokkaa DDS tiedostoja
Tietoja DDS-tiedostoista
- Ohjelmisto DDS-tiedostojen avaamiseen
- Adobe Photoshop (Plugin) GIMP (Plugin) Paint.NET IrfanView
- Ohjelmisto DDS-tiedostojen muokkaamiseen
- Adobe Photoshop (Plugin) GIMP (Plugin)
- MIME-tyyppi DDS: lle
- image/vnd-ms.dds
Ei kommentteja