Allt om DDS-filer
Microsofts texturformat för spel och 3D-applikationer
DDS står för DirectDraw Surface och är ett filformat utvecklat av Microsoft för lagring av texturer och ytdata för 3D-applikationer. Formatet introducerades tillsammans med DirectX 7 för att lagra både komprimerade och [1]okomprimerade texturer. Huvudet härstammar direkt från DirectDraw 7-strukturerna, och även om DirectDraw i sig sedan länge betraktas som ett äldre API lever filformatet vidare och används fortfarande[2] ofta. Den som någon gång har packat upp spelfiler eller till och med skapat mods för spel har med stor säkerhet stött på .dds-filer – och kanske inte kunnat visa dem direkt.
Teknisk bakgrund
Grafikkort hade på den tiden ofta bara 8 MB videominne, och okomprimerade texturer åt upp detta på några sekunder. Lösningen kom från S3 Graphics, som med S3 Texture Compression (S3TC) utvecklade en metod som kunde komprimera texturdata till en fjärdedel till en sjättedel av deras ursprungliga storlek, utan att grafikkortet först behövde packa upp data på ett tidskrävande sätt före renderingen. I mars 1998 licensierade Microsoft denna teknik för DirectX[3]. S3TC utvecklades ursprungligen för grafikkortet Savage 3D och ansöktes om patent[4] 1997. Microsoft valde just denna algoritm eftersom den levererade den bästa bildkvaliteten och kunde implementeras [3]kostnadseffektivt i hårdvaran. Med DirectX 7 fick den komprimerade texturfilen sedan sin egen behållare: DDS-formatet.
Vidareutveckling av formatet
Det som 1999 började som en enkel texturbehållare har byggts ut kraftigt genom åren. Med DirectX 8.0 tillkom stöd för volymtexturer, och från och med Direct3D 10 stöds även [1]texturarrayer. I samband med detta infördes en utökad header (DX10-Extension) som löste ett ganska otrevligt problem: Formatbeteckningarna från Direct3D 9 och Direct3D 10 kolliderade med varandra, vilket utan den nya headern skulle ha lett till [2]tvetydigheter VID inläsning. Med DirectX 11 tillkom sedan ytterligare komprimeringsmetoder som bland annat möjliggör HDR-texturer (för realistiska ljusförhållanden) och en totalt sett högre färgåtergivning.
DDS – bild- eller containerformat?
DDS är i detta sammanhang mindre ett klassiskt bildformat än ett containerformat. En enskild DDS-fil kan förutom enkla 2D-texturer även innehålla kubkartor (sex sidor av en omgivningsreflektion, som man till exempel behöver för himmel eller speglande ytor), volymtexturer (för effekter som dimma eller rök) och kompletta mipmap-kedjor. De senare är texturvarianter med sjunkande upplösning, så att ett objekt på avstånd inte behöver ladda samma högupplösta textur som ett objekt direkt framför kameran. De fem ursprungliga komprimeringsformaten DXT1 till DXT5 döptes om till BC1 till BC3[4] med Direct3D 10, där DXT2 och DXT4 i praktiken knappt användes.
Användningsområden för DDS-filer
Formatet stöds av praktiskt taget alla stora spelmotorer, däribland Unreal Engine, Unity och CryEngine. Typiska användningsområden är diffuse maps (den faktiska färgsättningen på en yta), normal maps (simulerade ytdetaljer som räfflor eller ojämnheter), specular maps (styrning av glans och reflektioner) och alla andra texturtyper som ett modernt 3D-spel har.
Även om DDS ursprungligen utvecklades för DirectX kan det även användas i OpenGL via OpenGL-tillägget [4]GL_EXT_texture_compression_s3tc. Den som tror att DDS är en ren Windows-fråga har alltså fel. Formatet används även utanför spelbranschen, till exempel vid arkitekturvisualiseringar eller simuleringar.
Programvarustöd
Det finns olika program för att öppna och redigera DDS-filer, däribland Adobe Photoshop (med plugin), GIMP (med DDS-plugin), Paint.NET och IrfanView. Microsoft underhåller med DirectXTex och DirectXTK egna open source-bibliotek på GitHub som ger fullt stöd för formatet. Alternativt kan DDS-filer konverteras direkt i webbläsaren till vanliga format som PNG eller JPG med konvertera-online.se.
Källor
[1] Microsoft Learn: DDS – Win32-appar
[2] Chuck Walbourn / Microsoft DirectX SDK Blog: The DDS File Format Lives
[3] Microsoft Licenses 3-D Graphics Technology From S3 Incorporated
[4] Wikipedia S3 Texture Compression
Konvertera, öppna och redigera DDS-filer
Uppgifter om DDS-filer
- Programvara för att öppna DDS-filer
- Adobe Photoshop (Plugin) GIMP (Plugin) Paint.NET IrfanView
- Programvara för att redigera DDS-filer
- Adobe Photoshop (Plugin) GIMP (Plugin)
- MIME-typ för DDS
- image/vnd-ms.dds
Inga kommentarer