How do I create a DDS File?

Sådan Opretter Du en DDS Fil

DDS-filer, eller DirectDraw Surface-filer, er et billedformat primært brugt inden for realtidsgrafik, såsom i computerspil og 3D-applikationer. Deres popularitet skyldes evnen til effektivt at gemme komprimerede teksturer (oftest ved hjælp af DXT/BC-komprimering) og understøtte funktioner som mipmaps og kubekort. Hvis du arbejder med spiludvikling, modding eller 3D-modellering, vil du sandsynligvis støde på behovet for at oprette eller manipulere DDS-filer. Denne artikel vil guide dig gennem processen og de forskellige metoder til at skabe dine egne DDS-filer fra standard billedformater.

At oprette en DDS-fil er ikke så kompliceret, som det måske lyder, men det kræver kendskab til de rigtige værktøjer og de vigtigste indstillinger, der påvirker filens ydeevne og visuelle kvalitet i den applikation, den skal bruges i. Valget af komprimeringsformat, håndtering af gennemsigtighed (alfakanalen) og generering af mipmaps er alle kritiske trin i processen.

How do I create a DDS File?
CREATING A FILE USING DDS1Complete the DDS form.2Type the source statements into a source file. The source file can be part of the IBM® i database (in a source physical file such as the IBM-supplied QDDSSRC in library QGPL) or it can be on diskettes.3Create the file using the appropriate control language (CL) command.
Indholds

Hvad er en DDS-fil, og hvorfor bruge den?

En DDS-fil er designet til at gemme pixeldata på en måde, der er optimeret til grafikkort. I stedet for at gemme hvert pixel individuelt i et standardformat som PNG eller JPG, bruger DDS ofte blokbaseret komprimering (DXT eller BC formater), som grafikkort hurtigt kan dekomprimere direkte på hardwaren. Dette reducerer mængden af videohukommelse, der kræves, og øger renderingens hastighed.

Udover komprimering understøtter DDS også:

  • Mipmaps: Mindre, forudgenererede versioner af teksturen. De bruges automatisk af grafikkortet, når objektet med teksturen er langt væk, hvilket forbedrer ydeevnen og reducerer visuelle artefakter som aliasing (flimmer).
  • Kubekort (Cube Maps): Seks teksturer arrangeret som siderne på en terning, der bruges til at simulere refleksioner eller omgivelser.
  • Volumenteksturer (Volume Textures): En stak 2D-teksturer, der danner en 3D-struktur, ofte brugt til volumetrisk rendering.
  • Forskellige pixelformater: Herunder formater med alfakanaler for gennemsigtighed.

Brugen af DDS er derfor standarden inden for spil- og 3D-grafikindustrien for at sikre effektiv håndtering af teksturer.

Metoder til Oprettelse af DDS-filer

Der er primært to hovedmetoder til at oprette DDS-filer:

  1. Brug af billedredigeringssoftware med et DDS-plugin.
  2. Brug af dedikerede teksturværktøjer eller kommandolinjeværktøjer.

Valget af metode afhænger ofte af dit workflow, om du arbejder med enkeltbilleder eller store mængder teksturer, og hvilket niveau af kontrol over gemmeindstillingerne du har brug for.

1. Brug af Billedredigeringssoftware (med Plugins)

Dette er ofte den mest tilgængelige metode for mange brugere, især dem der allerede er vant til at arbejde med billeder i programmer som Adobe Photoshop eller GIMP. Disse programmer understøtter ikke DDS-formatet nativt, men kan udvides med tredjeparts plugins.

Adobe Photoshop

NVIDIA leverer et populært Texture Tools Exporter plugin til Photoshop. Når plugin'et er installeret, dukker DDS op som en gemme- eller eksportmulighed.

  • Trin:
    1. Åbn det billede, du vil konvertere, i Photoshop.
    2. Gå til menuen 'Filer' (File).
    3. Vælg 'Gem som' (Save As) eller 'Eksporter' (Export) afhængigt af Photoshop-versionen og plugin'et.
    4. Vælg 'DDS' fra formatlisten.
    5. Et dialogvindue fra plugin'et åbnes. Her skal du konfigurere indstillingerne.
    6. Klik på 'Gem' (Save) eller 'OK'.
  • Vigtige Indstillinger i Dialogvinduet:

    Dialogvinduet giver dig kontrol over de vigtigste DDS-specifikke indstillinger:

    • Komprimeringstype (Compression Type): Vælg det DXT/BC-format, der passer bedst til din tekstur (f.eks. DXT1, DXT5, BC7). Valget afhænger af, om teksturen har gennemsigtighed, og hvilken kvalitet/komprimering du har brug for.
    • Mipmaps: Aktiver (Generate Mipmaps) for automatisk at generere mipmap-niveauer. Du kan ofte vælge filtermetoden for mipmap-generering. Dette er næsten altid anbefalet for 3D-teksturer.
    • Alfakanal (Alpha Channel): Hvis dit kildebillede har gennemsigtighed, skal du sikre dig, at du vælger et DDS-format, der understøtter en alfakanal (f.eks. DXT5 eller BC7). Du skal også tjekke indstillinger relateret til, hvordan alfaen håndteres (f.eks. om den er interpoleret eller eksplicit).
    • Teksturtype (Texture Type): Standard er 2D. Vælg Cube Map, hvis du eksporterer et miljøkort.

GIMP (GNU Image Manipulation Program)

GIMP, et gratis og open source billedredigeringsprogram, kan også oprette DDS-filer ved hjælp af et plugin. Søg efter 'GIMP DDS Plugin'.

  • Trin:
    1. Åbn dit billede i GIMP.
    2. Gå til menuen 'Filer' (File).
    3. Vælg 'Eksporter som' (Export As).
    4. Vælg 'DirectDraw Surface (.dds)' fra filtype-listen.
    5. Klik 'Eksporter'.
    6. Et dialogvindue for DDS-indstillinger åbnes.
    7. Konfigurer indstillingerne og klik 'Eksporter' igen.
  • Vigtige Indstillinger:

    Ligesom i Photoshop-plugin'et vil du have muligheder for:

    • Komprimering: Vælg det ønskede DXT/BC-format.
    • Mipmaps: Generer mipmaps.
    • Alfakanal: Håndtering af gennemsigtighed.

    GIMP's plugin kan have lidt færre avancerede indstillinger end NVIDIAs Photoshop-plugin, men dækker de grundlæggende behov.

Fordelen ved at bruge billedredigeringssoftware er, at du kan foretage justeringer og redigeringer på billedet lige før eksporten til DDS. Ulempen er, at det kan være langsomt, hvis du skal behandle mange filer, og plugin'ets indstillinger kan være mindre omfattende end dedikerede værktøjer.

2. Brug af Dedikerede Teksturværktøjer

For mere kontrol, batch-behandling, eller adgang til de nyeste komprimeringsformater, er dedikerede værktøjer ofte det foretrukne valg. Disse værktøjer er bygget specifikt til teksturbehandling og tilbyder typisk flere avancerede muligheder.

NVIDIA Texture Tools

Udover Photoshop-plugin'et tilbyder NVIDIA også en standalone pakke af Texture Tools. Disse inkluderer command-line værktøjer og nogle gange GUI-værktøjer.

  • Eksempel: texconv (Microsoft/DirectXTex)

    texconv er et alsidigt kommandolinjeværktøj fra Microsoft (del af DirectXTex-biblioteket), som kan konvertere mellem mange billedformater, herunder oprettelse af DDS. Det er ekstremt kraftfuldt for batch-behandling.

    • Trin (Eksempel via Kommandoprompt):
      1. Åbn Kommandoprompt eller PowerShell.
      2. Naviger til mappen, hvor texconv.exe er gemt, eller tilføj den til din PATH.
      3. Kør en kommando som:
        texconv input.png -ft DDS -o output.dds -f BC7 -m 10
    • Forklaring af Kommando:

      input.png: Dit kildebillede.
      -ft DDS: Angiver outputformatet er DDS.
      -o output.dds: Angiver outputfilens navn.
      -f BC7: Angiver komprimeringsformatet til BC7 (et moderne, højkvalitetsformat). Andre formater som BC1 (DXT1), BC3 (DXT5), BC5 osv. er også tilgængelige.
      -m 10: Generer 10 mipmap-niveauer (eller brug -m 0 for alle nødvendige niveauer).

    • Fordele ved texconv: Utrolig fleksibel, understøtter mange formater og avancerede indstillinger, perfekt til automatisering og batch-scripts. Kræver dog komfort med kommandolinjen.
  • AMD Compressonator:

    AMD tilbyder også et omfattende værktøj kaldet Compressonator, som både har en GUI og command-line muligheder. Det understøtter en bred vifte af komprimeringsformater, herunder AMDs egne BC6H (HDR) og BC7 formater. Compressonator er fremragende til at analysere og optimere teksturer.

Dedikerede værktøjer giver ofte mere kontrol over komprimeringsalgoritmer, filterindstillinger og mulighed for at automatisere processen for et stort antal teksturer. De kan dog have en stejlere indlæringskurve end billedredigeringsplugins.

Vigtige Overvejelser ved Gemme DDS-filer

Når du opretter en DDS-fil, er valget af indstillinger afgørende for, hvordan teksturen vil opføre sig i din applikation. Her er de vigtigste punkter:

  • Valg af Komprimeringsformat:

    Dette er måske den vigtigste beslutning. Valget afhænger primært af, om din tekstur har gennemsigtighed, og hvilken visuel kvalitet og ydeevne du sigter efter:

    • DXT1 / BC1: Meget høj komprimering (8:1 for RGB, 6:1 for RGB med 1-bit alfa). Understøtter enten ingen alfa eller 1-bit alfa (enten fuldt gennemsigtig eller fuldt uigennemsigtig pr. blok). Bedst til teksturer uden gennemsigtighed eller med enkle maskeringer.
    • DXT3 / BC2: Høj komprimering (4:1). Bruger en eksplicit 4-bit alfakanal pr. blok. God til teksturer med skarpe gennemsigtighedsovergange.
    • DXT5 / BC3: Høj komprimering (4:1). Bruger en interpoleret 8-bit alfakanal pr. blok. Bedst til teksturer med glatte gennemsigtighedsovergange eller komplekse alfakanaler. Dette er et meget almindeligt valg.
    • BC7: Nyere format (del af DirectX 11). Tilbyder højere kvalitet end DXT-formaterne og er mere alsidigt. Understøtter alfa og er generelt bedre til at bevare billeddetaljer og farvegradienter. Komprimeringen er variabel, men typisk god. Kræver nyere hardware.
    • BC6H: Også del af DirectX 11. Specifikt designet til HDR (High Dynamic Range) teksturer.
    • Ukomprimeret: Du kan også gemme DDS-filer ukomprimeret (f.eks. som A8R8G8B8). Dette giver den bedste kvalitet, men bruger betydeligt mere hukommelse og er sjældnere i spil/3D-applikationer, hvor ydeevne er kritisk.

    Test altid forskellige formater for at se, hvilket der giver den bedste balance mellem visuel kvalitet, filstørrelse og ydeevne for din specifikke anvendelse.

  • Mipmap-generering:

    Medmindre din tekstur kun nogensinde vil blive set fra én fast afstand (meget sjældent i 3D), skal du altid generere mipmaps. Manglende mipmaps resulterer i dårlig ydeevne og synligt flimmer (aliasing) på afstand. De fleste værktøjer genererer dem automatisk, men sørg for at denne mulighed er slået til.

  • Håndtering af Alfakanal:

    Hvis dit kildebillede har gennemsigtighed, skal du sikre dig, at du bruger et DDS-format, der understøtter alfa (DXT3, DXT5, BC7 eller ukomprimeret). Vælg mellem DXT3 og DXT5 baseret på arten af din gennemsigtighed (skarp vs. glat). Sørg også for, at din billedredigeringssoftware eller værktøj korrekt fortolker og gemmer alfakanalen fra dit kildebillede (f.eks. PNG eller TGA med alfa).

  • Dimensioner:

    Teksturer i spil og 3D har traditionelt haft dimensioner, der er potenser af 2 (f.eks. 256x256, 512x512, 1024x512, 2048x2048). Moderne hardware kan håndtere teksturer med ikke-potens-af-2 dimensioner, men potenser af 2 kan stadig give bedre ydeevne eller være påkrævet af ældre systemer eller specifikke motorer. De er også nødvendige for korrekt mipmap-generering ned til 1x1 pixel.

Almindelige Problemer og Fejlfinding

  • Synlige "blokke" eller artefakter: Dette skyldes ofte komprimering, især med DXT-formaterne. Prøv et mindre aggressivt komprimeringsformat (f.eks. DXT5 i stedet for DXT1 for billeder med alfa), eller overvej BC7 for bedre kvalitet. Ukomprimeret er den bedste kvalitet, men på bekostning af filstørrelse og hukommelse.
  • Forkert gennemsigtighed: Tjek, at du har valgt et DDS-format, der understøtter alfa, og at din kildebilledfil rent faktisk indeholder en alfakanal. Sørg for, at plugin'et eller værktøjet er indstillet til at bruge den.
  • Flimmer på afstand: Dette er et klassisk tegn på manglende mipmaps. Sørg for, at mipmap-generering er aktiveret, når du gemmer DDS-filen.
  • Filen indlæses ikke: Tjek, at formatet er kompatibelt med den applikation eller motor, du bruger DDS-filen i. Ældre spil eller motorer understøtter måske ikke nyere formater som BC7. Tjek også, at dimensionerne er gyldige (potens af 2 er sikrest).

Ofte Stillede Spørgsmål om DDS

  • Hvilket software er bedst til at oprette DDS-filer?

    Det afhænger af dit behov. For lejlighedsvis oprettelse og redigering er et billedredigeringsprogram med et plugin (som Photoshop eller GIMP) ofte nemmest. For batch-behandling, automatisering og adgang til de nyeste formater og mest kontrol, er dedikerede værktøjer som texconv eller AMD Compressonator bedre.

  • Skal jeg altid generere mipmaps?

    For teksturer, der bruges på 3D-objekter, der kan ses fra forskellige afstande i et spil eller 3D-miljø, er mipmaps næsten altid nødvendige for god ydeevne og visuel kvalitet.

  • Hvilket komprimeringsformat skal jeg vælge?

    Brug DXT1/BC1 for teksturer uden alfa. Brug DXT5/BC3 for teksturer med glat alfa. Brug DXT3/BC2 for teksturer med skarp alfa. Overvej BC7 for højere kvalitet, hvis din målplatform understøtter det. Ukomprimeret bruges sjældent på grund af hukommelsesforbrug, men giver perfekt kvalitet.

  • Kan jeg konvertere en JPG eller PNG direkte til DDS?

    Ja, de fleste værktøjer og plugins kan tage standard billedformater som JPG, PNG, TGA, TIFF osv., som input og konvertere dem til DDS, mens de anvender komprimering og genererer mipmaps.

Oprettelse af DDS-filer er en fundamental proces i mange grafiske workflows. Ved at forstå de forskellige værktøjer og især betydningen af komprimering, mipmaps og alfakanalen, kan du effektivt forberede dine teksturer til brug i realtids 3D-applikationer og sikre både god ydeevne og visuel kvalitet.

DDS Komprimeringsformat Understøtter Alfa? Komprimering Typiske Anvendelser
DXT1 / BC1 Nej / 1-bit Høj (8:1 / 6:1) Opaque teksturer, teksturer med simpel maskering
DXT3 / BC2 Ja (Eksplicit 4-bit) Høj (4:1) Teksturer med skarpe alfa-overgange
DXT5 / BC3 Ja (Interpoleret 8-bit) Høj (4:1) Teksturer med glatte alfa-overgange
BC7 Ja (Variabel) Variabel (typisk god) Høj kvalitet, generel brug, både med og uden alfa
Ukomprimeret (f.eks. A8R8G8B8) Ja Ingen Maksimal kvalitet, men stort hukommelsesforbrug

Hvis du vil læse andre artikler, der ligner Sådan Opretter Du en DDS Fil, kan du besøge kategorien Grafik.

Avatar photo

Franne Voigt

Mit navn er Franne Voigt, jeg er en 35-årig fotograf fra Danmark med en passion for at fange øjeblikke og dele mine erfaringer gennem min fotoblog. Jeg har arbejdet med både portræt- og naturfotografi i over et årti, og på bloggen giver jeg tips, teknikker og inspiration til både nye og erfarne fotografer. Fotografi er for mig en måde at fortælle historier på – én ramme ad gangen.

Go up