[go: nahoru, domu]

Hoppa till innehållet

DirectX: Skillnad mellan sidversioner

Från Wikipedia
Innehåll som raderades Innehåll som lades till
Miningpyropony (Diskussion | Bidrag)
m Stavning.
mIngen redigeringssammanfattning
 
(27 mellanliggande sidversioner av 21 användare visas inte)
Rad 1: Rad 1:
{{Uppdateras|datum=2013-12}}
{{Windows-komponent
{{Windows-komponent
|namn = DirectX
|namn = DirectX
|logo =
|logo =
|bild =
|bild = Microsoft-DirectX-Logo-wordmark.svg
|bildtext =
|bildtext =
|engelskt_namn = DirectX
|engelskt_namn = DirectX
Rad 24: Rad 25:
== Historik ==
== Historik ==


DirectX skapades för att prestandan i Windows-spel skrivna för [[Graphics Device Interface|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{{vem|datum=2010-03}} ansåg att Direct3D var en dålig idé då [[OpenGL]] redan var en industristandard.
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 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<ref>[[Paul Hsieh]], http://www.azillionmonkeys.com/windoze/OpenGLvsDirect3D.html "Direct 3D and OpenGL", 1998.</ref> 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|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.
Microsoft utvecklade en slimmad specialversion av DirectX för [[XBox|Xbox]] i samarbete med [[nVidia]]. Denna version är ännu mycket mer hårdvarunära än vanliga DirectX.


Ännu en version specialutvecklades för [[Xbox 360]].
Ännu en version specialutvecklades för [[Xbox 360]] och möjligtvis [[Xbox One]].


== DirectX ==
== DirectX ==
Rad 36: Rad 37:
=== Direct3D ===
=== 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 ä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 (API)|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.
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 ===


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.
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 ===
=== DirectSound ===
Rad 62: Rad 63:


== API ==
== 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 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 ==
== 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.
Den enda komponent som uppdaterades från DirectX 9c till version 10 var 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 försvann igen och ersattes av just Direct3D 10. D3D10 var en komplett omarbetning av hela API:et, och kan skyffla data till grafikkortet betydligt snabbare än tidigare versioner. Prestandan begränsas ju dock fortfarande av vad grafikkortet klarar av.


== DirectX 11 ==
== DirectX 11 ==


[[Microsoft]] har nu gått ut med detaljer om DirectX 11, som är nästa version av det populära programbiblioteket. Precis som föregångaren kommer DX11 att kräva [[Windows Vista]] eller [[Windows 7]], men komponenten kommer också att vara inbakad i framtida [[operativsystem]] från [[företag]]et.
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 är bättre funktioner för GPGPU, vilket betyder att [[grafikkort]]et kan användas till andra beräkningar än de rent grafiska. Nästa version av bildbehandlingsprogrammet [[Adobe]] Photoshop kan använda grafikkortet för att avlasta processorn vid vissa typer av krävande uppgifter.
En av de större nyheterna i DirectX 11 var bättre funktioner för [[GPGPU]], vilket betyder att [[grafikkort]]et 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.


Den nya versionen innehåller givetvis en hel del ögongodis. Bland annat nämner Microsoft en ny [[teknik]] som kallas för tesselering ska göra att [[3D-modell]]er, exempelvis människor i spel, ska se mindre kantiga ut när de betraktas på korta [[avstånd]]. Grafikkortsjättarna [[ATI Technologies|ATI]] och [[Nvidia]] har en hel del 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. Både Nvidia och ATI erbjuder i dagens läge budgetkort som även klarar av DirectX 11 även om det oftast krävs ett kort ur prestanda-segmentet för att kunna dra nytta av de nya ögongodiset som DX11 erbjuder, däribland tesselering. [[Asus]] var först ut med en [[bärbar dator]] som stödjer DirectX 11.<ref>http://www.engadget.com/2010/01/09/ati-serves-up-directx-11-compatible-mobility-radeon-gpus-helps/</ref>
DirectX 11 innehöll bland annat en ny [[teknik]] som kallas för tesselering som gör att [[3D-modell]]er, exempelvis människor i spel, ser mindre kantiga ut när de betraktas på korta [[avstånd]]. Grafikkortsjättarna [[ATI_Technologies|ATI]] och [[Nvidia]] har en hel del 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.<ref>http://www.engadget.com/2010/01/09/ati-serves-up-directx-11-compatible-mobility-radeon-gpus-helps/</ref>


== Rendering av Vista ==
== DirectX 12 ==
DirectX 12 släpptes 2015 tillsammans med [[Windows 10]] och fungerar även på äldre grafikkort.

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 ==
== Dominans ==
Rad 84: Rad 84:
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 [[GNU/Linux|Linux]]-stöd för spel och speltillverkares förmåga att optimera spel för Linux.
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 [[GNU/Linux|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.
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 enkla spel till realtidsspel är möjligt att använda i Microsoft Windows.


== Uppdateringar ==
== Uppdateringar ==
Rad 96: Rad 96:


== Externa länkar ==
== Externa länkar ==
* [http://directxworld.altervista.org DirectX World] - DirectX lessons. Learn how to build a graphic engine.
* [https://web.archive.org/web/20170205021949/http://directxworld.altervista.org/ DirectX World] - DirectX lessons. Learn how to build a graphic engine.
* [http://msdn.microsoft.com/directx/ DirectX developer center]
* [http://msdn.microsoft.com/directx/ DirectX developer center]
* [http://www.gamedev.se/artiklar/index.php?title=Komma_ig%C3%A5ng_med_DirectX Komma igång med DirectX programmering]
* [https://web.archive.org/web/20060709003922/http://www.gamedev.se/artiklar/index.php?title=Komma_ig%C3%A5ng_med_DirectX Komma igång med DirectX programmering]
* [http://windowshelp.microsoft.com/Windows/sv-SE/Help/1c2215fa-4020-465f-8afd-22f6d309e2961053.mspx Ta reda på vilken version av DirectX som är installerad på datorn (artikel i Microsofts onlinehjälp för Windows)]
* [http://windowshelp.microsoft.com/Windows/sv-SE/Help/1c2215fa-4020-465f-8afd-22f6d309e2961053.mspx Ta reda på vilken version av DirectX som är installerad på datorn (artikel i Microsofts onlinehjälp för Windows)]

{{Microsoft}}


[[Kategori:Datorgrafik]]
[[Kategori:Datorgrafik]]

Nuvarande version från 22 april 2023 kl. 10.44

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[redigera | redigera wikitext]

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[1] 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.

Ännu en version specialutvecklades för Xbox 360 och möjligtvis Xbox One.

DirectX[redigera | redigera wikitext]

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

Direct3D[redigera | redigera wikitext]

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[redigera | redigera wikitext]

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[redigera | redigera wikitext]

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[redigera | redigera wikitext]

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[redigera | redigera wikitext]

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

DirectInput[redigera | redigera wikitext]

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

XInput[redigera | redigera wikitext]

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

API[redigera | redigera wikitext]

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[redigera | redigera wikitext]

Den enda komponent som uppdaterades från DirectX 9c till version 10 var 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 försvann igen och ersattes av just Direct3D 10. D3D10 var en komplett omarbetning av hela API:et, och kan skyffla data till grafikkortet betydligt snabbare än tidigare versioner. Prestandan begränsas ju dock fortfarande av vad grafikkortet klarar av.

DirectX 11[redigera | redigera wikitext]

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 en hel del 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.[2]

DirectX 12[redigera | redigera wikitext]

DirectX 12 släpptes 2015 tillsammans med Windows 10 och fungerar även på äldre grafikkort.

Dominans[redigera | redigera wikitext]

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 enkla spel till realtidsspel är möjligt att använda i Microsoft Windows.

Uppdateringar[redigera | redigera wikitext]

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.

Se även[redigera | redigera wikitext]

Källor[redigera | redigera wikitext]

Externa länkar[redigera | redigera wikitext]