DirectX
Från Rilpedia
DirectX En komponent i Microsoft Windows |
|
Detaljer | |
---|---|
Engelskt namn | DirectX |
DirectX är ett API (application programming interface) för spelprogrammering, skapat av Microsoft.
Innehåll |
Aktuella versioner
Nuvarande version är DirectX 10, även om komponenter som DirectSound och DirectInput inte utvecklas mer utan ligger kvar på version 8. I "DirectX 10" kommer enbart Direct3D att uppdateras i större grad. DirectX 10 är direkt sammankopplat med Windows Vista, alltså är det inte troligt att den släpps för tidigare Windows-versioner. Spekulationer finns dock om att någon typ av portning kommer att skapas för Windows XP.
Historik
DirectX skapades för att prestandan i Windows-spel skrivna för GDI och Windows inbyggda ljudsystem var för dålig. Det gjorde att spelutvecklare klamrade sig fast vid DOS. DirectX blev slutligen en integrerad komponent i Windows 95. Inte många klagade på de andra delarna av DirectX, men många 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, vilket till viss del förklarar varför en XBox klarar betydligt mer krävande spel än motsvarande PC.
Ännu en version specialutvecklades för Xbox 360.
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 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, Direct3D 10 och Direct3D 9Ex, är exklusiva till Windows Vista. 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. Det gör det lätt att slänga ihop en lobby och så, 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 osv är öppna är för att det är mer konsekvent, bättre stöd i drivrutiner och mer komplett. OpenGL har en fördel med sitt extension-system som gör det lätt för grafikhårdvara att använda nya finesser, men DirectX släpps i nya versioner så pass ofta att det inte spelar någon större roll i praktiken.
DirectX 10
Den enda komponent som uppdateras från DirectX 9c till version 10 är Direct3D. Från början tänkte Microsoft att det var dags för ett nytt namn och döpte det till Windows Graphics Foundation, men detta namn håller på att försvinna igen och ersättas av just Direct3D 10. D3D10 är en komplett redesign av hela API:et, och kommer att kunna skyffla data till grafikkortet betydligt snabbare än tidigare versioner. Prestandan begränsas ju dock fortfarande av vad grafikkortet klarar av.
Rendering av Vista
Alla avancerade 3D-effekter i Windows Vista gör att Direct3D används för att rendera fönsterna. Först tänkte Microsoft enbart stöda OpenGL genom emulering när DWM:en var igång, men de ändrade sig senare så Windows Vista kommer liksom tidigare versioner ha möjlighet för drivrutiner att inkludera komplett OpenGL-stöd.
Dominans
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 gör detta populariteten enorm, och i och med att formatet är hemligt skapar detta problem för Linux-stöd för spel och speltillverkares förmåga att optimera spel för Linux.
Just spel har blivit en orsak till att många använder Windows istället för Linux och Unix. Då Windows har störst utbud och Linux och Unix har ett begränsat utbud, vilket ger konkurrensfördelar eftersom allt från simpla spel till realtidsspel är möjligt att använda i Microsoft Windows.
Uppdateringar
Nya versioner hämtas från Windows Update eller från Microsofts DirectX-sajt. Nackdelen är att de nya finesserna som varje version inför kräver bättre hårdvara än den tidigare, som kan göra det nödvändigt att byta ut vissa delar av hårdvaran.
Externa länkar
- DirectX World - DirectX lessons. Learn how to build a graphic engine.
- DirectX developer center
- Komma igång med DirectX programmering
- Ta reda på vilken version av DirectX som är installerad på datorn (artikel i Microsofts onlinehjälp för Windows)