DirectX

DirectX
En komponent i Microsoft Windows
Microsoft-DirectX-Logo-wordmark.svg
Detaljer
Engelskt namnDirectX

DirectX är en API (application programming interface) för spelprogrammering, skapat av Microsoft.

Historik

DirectX skapades i syfte att underlätta kommunikationen mellan datorspel samt hårdvaran som kör spelet. Detta underlättade arbetsbördan för spelutvecklare, som tidigare behövt programmera spel på olika sätt för olika hårdvarufamiljer. Med DirectX kunde spelutvecklare nu programmera sina spel på ett sätt. DirectX blev slutligen en integrerad komponent i Windows 95. Inte många klagade på de andra delarna av DirectX, men flera spelutvecklare ansåg att Direct3D var en dålig idé då OpenGL redan var en industristandard.

Microsoft utvecklade en slimmad specialversion av DirectX för Xbox i samarbete med NVidia. Denna version är ännu mycket mer hårdvarunära än vanliga DirectX. DirectX har även inkluderats som komponent i följande generationer av Xbox. Själva namnet "Xbox" härstammar från just DirectX.

DirectX

API:en (Application program interface) inkluderar flera delkomponenter. Till exempel DirectSound, för ljud. Direct3D, för 3D-grafik.

Direct3D

Direct3D är 3D-acceleratorAPI:et som följer med DirectX. Det används för renderingen av WinFX .NET-grafik i Windows Vista. Direct3D konkurrerar med AMD:s Mantle, samt med OpenGL vars specifikationer är helt öppna.

Direct3D används flitigt vid utveckling av datorspel för Microsoft Windows, Xbox och Xbox 360. De senaste versionerna av Direct3D är exklusiva till specifika versioner av Windows. De skäl som Microsoft hävdar, är att det finns omfattande förändringar i Windows grafikarkitektur, särskilt införandet av Windows Display Driver Model. Kritiker menar att det kan ligga kommersiella motiv bakom det också. Både Direct3D 9Ex och Direct3D 10 förlitar sig på WDDM-infrastruktur samt WDDM-drivrutiner.

DirectPlay

DirectPlay är ett API främst avsett för flerspelar-spel över Internet, men hade ganska dåliga prestanda och utvecklingen har lagts ner. Spelutvecklare uppmanas numera använda de vanliga TCP/IP-API:erna istället.

DirectSound

Ljud-API:et som ingår i DirectX. Väldigt hårdvarunära API som i stort sett bara är ett interface till ljudbuffrar som ens program får fylla i manuellt. Innehåller även visst 3D-ljudsstöd. Stöder hårdvaruacceleration av mixning och effekter.

DirectMusic

DirectMusic är en liten ljudmotor som gör det lättare att skapa dynamisk musik som förändrar sig i takt med situationen i spelet. Då det är i stort sett begränsat till MIDI blev det aldrig särskilt populärt. XACT är den moderna ersättaren.

XACT

API från Microsofts Xbox-division, kommer i framtiden att ersätta DirectSound/DirectMusic då dessa blivit något föråldrade.

DirectInput

Ett API för att komma åt joysticks, tangentbord, möss på ett hårdvarunära sätt.

XInput

Den moderna ersättningen för DirectInput, med stöd för Xbox 360-kontroller. Ännu ett API designat av Xbox-divisionen.

API

DirectX kostar inget att använda, och komplett dokumentation kan tankas ner från Microsofts webbplats. Anledningen till att många väljer DirectX, trots att OpenGL/OpenAL o.s.v. är öppna, är att det är mer konsekvent, har bättre stöd i drivrutiner och är mer komplett. OpenGL har en fördel med sitt tilläggssystem som gör det lätt för grafikhårdvara att använda nya finesser.

DirectX 10

Den enda komponent som uppdaterades från DirectX 9c till version 10 var Direct3D. Under utvecklingen användes namnet Windows Graphics Foundation men detta namn ersattes av Direct3D 10. D3D10 var en komplett omarbetning av hela API:et, och kan sända data till grafikkortet betydligt snabbare än tidigare versioner.

DirectX 11

Precis som föregångaren krävde DX11 Windows Vista eller Windows 7, men komponenten var också inbakad i Windows 8.

En av de större nyheterna i DirectX 11 var bättre funktioner för GPGPU, vilket betyder att grafikkortet kan användas till andra beräkningar än de rent grafiska. Från och med version CS4 av bildbehandlingsprogrammet Adobe Photoshop kan programmet använda grafikkortet för att avlasta processorn vid vissa typer av krävande uppgifter.

DirectX 11 innehöll bland annat en ny teknik som kallas för tesselering som gör att 3D-modeller, exempelvis människor i spel, ser mindre kantiga ut när de betraktas på korta avstånd. Grafikkortsjättarna ATI och Nvidia har produkter som stödjer DirectX 11. ATI-kort som stödjer DX11 är 5000, 6000 och 7000 serien. När det gäller Nvidia grafikkort som har stöd för DX11 är 400, 500 och 600 serien inräknade. Asus var först ut med en bärbar dator som stödde DirectX 11.

DirectX 12

DirectX 12 släpptes 2015 tillsammans med Windows 10 och fungerar även på äldre grafikkort. DirectX 12 är en konkurrent till liknande lågnivågrafikapier som exempelvis Apple Metal och Vulkan. I mars 2018 tillkännagavs DirectX Raytracing som ett alternativ till andra ray tracing-apier.

DirectX 12 Ultimate

DirectX 12 Ultimate är den senaste versionen av DirectX. I denna version utvecklas de två grafikbiblioteken för Windows och Xbox Series X och Series S inte längre separat. Istället utgör de ett enda bibliotek. Utöver kombineringen av de två biblioteken innefattar DirectX 12 Ultimate även DirectX Raytracing 1.1 som en vidareutveckling av strålspårningsteknikerna i DirectX 12.

Konkurrens

Direct3D konkurrerar med OpenGL när det gäller programmering av spel. Eftersom DirectX ingår i Windows och majoriteten av speltillverkarna optimerar för DirectX påverkar detta popularieteten. Under senare tid har kompatibilitetslager likt Wine tillåtit vissa program skrivna för Windows att fungera på operativsystem som Linux och FreeBSD.

Spel är en orsak till att många använder Windows istället för Linux och Unix. Windows har störst utbud och Linux och Unix har ett begränsat utbud vilket ger konkurrensfördelar då de flesta spel är möjliga att spela i Microsoft Windows.

Uppdateringar

Uppdateringar sker oftast med Windows Update. Det går även att ladda ner versioner av DirectX från Microsofts webbsida.

Se även

Källor

  1. ↑ Paul Hsieh, http://www.azillionmonkeys.com/windoze/OpenGLvsDirect3D.html "Direct 3D and OpenGL", 1998.
  2. ↑ http://www.engadget.com/2010/01/09/ati-serves-up-directx-11-compatible-mobility-radeon-gpus-helps/
  3. ↑ D3D Team (19 mars 2018). ”Announcing Microsoft DirectX Raytracing!” (på amerikansk engelska). DirectX Developer Blog. https://devblogs.microsoft.com/directx/announcing-microsoft-directx-raytracing/. Läst 13 november 2026.
  4. ↑ Shawn Hargreaves (19 mars 2020). ”Announcing DirectX 12 Ultimate” (på amerikansk engelska). DirectX Developer Blog. https://devblogs.microsoft.com/directx/announcing-directx-12-ultimate/. Läst 13 november 2026.

Externa länkar