Alt om DDS-filer
Microsofts teksturformat for spill og 3D-applikasjoner
DDS står for DirectDraw Surface og er et filformat utviklet av Microsoft for lagring av teksturer og overflatedata for 3D-applikasjoner. Formatet ble introdusert sammen med DirectX 7 for å lagre komprimerte og [1]ukomprimerte teksturer. Headeret er direkte avledet fra DirectDraw 7-strukturene, og selv om DirectDraw selv for lengst regnes som en legacy-API, lever filformatet videre og brukes fortsatt[2] ofte. Den som noen gang har pakket ut spillfiler eller til og med laget mods for spill, har med stor sannsynlighet støtt på .dds-filer – og kanskje ikke kunnet se dem direkte.
Teknisk bakgrunn
Grafikkort hadde den gang ofte bare 8 MB videominne, og ukomprimerte teksturer spiste opp dette på få sekunder. Løsningen kom fra S3 Graphics, som med S3 Texture Compression (S3TC) utviklet en metode som kunne komprimere teksturdata til en fjerdedel til en sjettedel av den opprinnelige størrelsen, uten at grafikkortet først måtte pakke ut dataene på en ressurskrevende måte før rendering. I mars 1998 lisensierte Microsoft denne teknologien for DirectX[3]. S3TC ble opprinnelig utviklet for grafikkortet Savage 3D og ble patentert[4] i 1997. Microsoft valgte nettopp denne algoritmen fordi den leverte den beste bildekvaliteten og kunne implementeres [3]kostnadseffektivt i maskinvare. Med DirectX 7 fikk den komprimerte teksturfilen sin egen container: DDS-formatet.
Videreutvikling av formatet
Det som i 1999 begynte som en enkel teksturbeholder, ble kraftig utvidet gjennom årene. Med DirectX 8.0 kom støtte for volumteksturer, og fra Direct3D 10 støttes også [1]tekstur-arrays. Da ble en utvidet header (DX10-Extension) introdusert, som løste et ganske ubehagelig problem: Formatbetegnelsene fra Direct3D 9 og Direct3D 10 kolliderte med hverandre, noe som uten den nye headeren ville ha ført til [2]tvetydigheter ved innlasting. Med DirectX 11 kom det ytterligere komprimeringsmetoder som blant annet muliggjør HDR-teksturer (for realistiske lysforhold) og en generelt høyere fargegjengivelse.
DDS – bilde- eller containerformat?
DDS er i så måte mindre et klassisk bildeformat enn et containerformat. En enkelt DDS-fil kan, i tillegg til enkle 2D-teksturer, også inneholde kubekart (seks sider med omgivelsesrefleksjon, slik man for eksempel trenger for himmel eller speilende overflater), volumteksturer (for effekter som tåke eller røyk) og komplette mipmap-kjeder. Sistnevnte er teksturvarianter med synkende oppløsning, slik at et objekt i det fjerne ikke trenger å laste inn den samme høyoppløselige teksturen som et objekt rett foran kameraet. De fem opprinnelige komprimeringsformatene DXT1 til DXT5 ble med Direct3D 10 omdøpt til BC1 [4]til BC3, hvor DXT2 og DXT4 i praksis knapt ble brukt.
Bruksområder for DDS-filer
Formatet støttes av praktisk talt alle store spillmotorer, blant annet Unreal Engine, Unity og CryEngine. Typiske bruksområder er diffuse kart (selve fargesettingen på en overflate), normal kart (simulerte overflatedetaljer som riller eller buler), spekulære kart (styring av glans og refleksjoner) og alle andre teksturtyper som et moderne 3D-spill har.
Selv om DDS opprinnelig ble utviklet for DirectX, kan det også brukes i OpenGL via OpenGL-utvidelsen [4]GL_EXT_texture_compression_s3tc. Den som tror at DDS kun er et Windows-fenomen, tar feil. Formatet brukes også utenfor spillbransjen, for eksempel i arkitekturvisualiseringer eller simuleringer.
Programvarestøtte
Det finnes ulike programmer for å åpne og redigere DDS-filer, blant annet Adobe Photoshop (med plugin), GIMP (med DDS-plugin), Paint.NET og IrfanView. Microsoft vedlikeholder egne åpne kildekode-biblioteker på GitHub, DirectXTex og DirectXTK, som støtter formatet fullt ut. Alternativt kan DDS-filer konverteres direkte i nettleseren til vanlige formater som PNG eller JPG ved hjelp av online-konverter.com.
Kilder
[1] Microsoft Learn: DDS – Win32-apper
[2] Chuck Walbourn / Microsoft DirectX SDK-blogg: DDS-filformatet lever
[3] Microsoft lisensierer 3D-grafikkteknologi fra S3 Incorporated
[4] Wikipedia S3-teksturkomprimering
Konvertere, åpne og redigere DDS filer
Detaljer om DDS filer
- Programvare for åpning av DDS filer
- Adobe Photoshop (Plugin) GIMP (Plugin) Paint.NET IrfanView
- Programvare for redigering av DDS filer
- Adobe Photoshop (Plugin) GIMP (Plugin)
- MIME-type for DDS
- image/vnd-ms.dds
Ingen kommentarer