DirectX - DirectX

DirectX
Logo Microsoft DirectX-wordmark.svg
Vývojáři Microsoft
První vydání 30. září 1995 ; Před 26 lety ( 1995-09-30 )
Stabilní uvolnění
12 Ultimate API / 10. listopadu 2020 ; Před 11 měsíci ( 2020-11-10 )
Operační systém Microsoft Windows , Dreamcast , Xbox , Xbox 360 , Xbox One , Xbox Series X a Series S.
Typ API
webová stránka www .microsoft .com /directx Upravte to na Wikidata

Microsoft DirectX je kolekce rozhraní pro programování aplikací (API) pro zpracování úkolů souvisejících s multimédii , zejména programováním her a videem, na platformách Microsoft . Původně všechny názvy těchto API začínaly „Direct“, jako Direct3D , DirectDraw , DirectMusic , DirectPlay , DirectSound atd. Název DirectX byl vytvořen jako zkrácený termín pro všechna tato API ( X zastupující konkrétní názvy API) a brzy se stal názvem kolekce. Když se Microsoft později pustil do vývoje herní konzole, X byl použit jako základ názvu Xbox k označení, že konzole byla založena na technologii DirectX. X Počáteční byla převedena v jmenovat API určených pro Xbox, jako XInput a cross-platform Audio Creation Tool (XACT), zatímco DirectX vzor byl pokračuje API Windows, například Direct2D a DirectWrite .

Direct3D (3D grafické API v DirectX) je široce používáno při vývoji videoher pro Microsoft Windows a konzoly Xbox . Direct3D je také používán jinými softwarovými aplikacemi pro vizualizaci a grafické úlohy, jako je CAD/CAM inženýrství. Protože Direct3D je nejrozšířenější součástí DirectX, je běžné, že názvy „DirectX“ a „Direct3D“ se používají zaměnitelně.

Sada pro vývoj softwaru DirectX (SDK) se skládá z runtime knihoven v redistribuovatelné binární formě, spolu s doprovodnou dokumentací a záhlavími pro použití při kódování. Původně byly doby běhu instalovány pouze pomocí her nebo výslovně uživatelem. Windows 95 se nespustil s DirectX, ale DirectX byl součástí Windows 95 OEM Service Release 2. Windows 98 a Windows NT 4.0 jsou dodávány s DirectX, protože od té doby byla vydána každá verze Windows. Sada SDK je k dispozici ke stažení zdarma. Zatímco doby běhu jsou proprietárním softwarem s uzavřeným zdrojovým kódem, zdrojový kód je poskytován pro většinu ukázek SDK. Počínaje vydáním Windows 8 Developer Preview byla DirectX SDK integrována do Windows SDK.

Historie vývoje

Na konci roku 1994 byl Microsoft připraven vydat Windows 95 , jeho další operační systém . Důležitým faktorem hodnoty, kterou by spotřebitelé na něj kladli, byly programy, které by na něm mohly běžet. Zaměstnanec Microsoftu Alex St. John byl v diskusích s různými vývojáři her, kteří se ptali na pravděpodobnost, že přivedou své hry MS-DOS na Windows 95, a shledal odpovědi většinou negativní; programátorům se zdálo vývoj prostředí Windows obtížnější ve srovnání s MS-DOS nebo jinými herními platformami. Existovaly také silné obavy z kompatibility; pozoruhodný případ byl z Disney's Animated Storybook: The Lion King, který byl založen na programovacím rozhraní WinG . Kvůli mnoha nekompatibilním grafickým ovladačům z nových počítačů Compaq, které nebyly testovány s rozhraním WinG, které bylo dodáno společně s hrou, se na mnoha stolních systémech tak často zhroutilo, že rodiče zaplavili linky nápovědy Disney .

St. John uznal, že rezistence pro vývoj her pod Windows by byla omezení, a najal dva další inženýry, Craiga Eislera a Erica Engstroma , aby vyvinuli lepší řešení, aby přiměli více programátorů vyvíjet hry pro Windows. Projekt dostal kódové označení Manhattan Project, protože v souvislosti se stejnojmenným projektem z druhé světové války se jednalo o vytlačení japonských herních konzolí s osobními počítači s operačním systémem Microsoft. Původně používal jako logo symbol záření, ale společnost Microsoft požádala tým o změnu loga. Vedení nesouhlasilo s projektem, protože již odepisovalo Windows jako herní platformu, ale tři se zavázali k vývoji tohoto projektu. Jejich vzpurná povaha vedla Brada Silverberga , senior viceprezidenta kancelářských produktů Microsoftu, k pojmenování trojice „Beastie Boys“.

Většina práce všech tří byla provedena mimo jiné přidělené projekty počínaje koncem roku 1994. Do čtyř měsíců a za přispění několika výrobců hardwaru tým vyvinul první sadu rozhraní pro programování aplikací (API), které představili na 1995 Konference vývojářů her . Sada SDK obsahovala knihovny jako DirectDraw pro grafické rutiny, DirectSound pro audio a DirectPlay pro síťovou komunikaci. Část „Direct“ knihovny byla pojmenována tak, že tyto rutiny obvykle obcházely základní rutiny Windows 95 a přistupovaly přímo k hardwaru počítače. Ačkoli jej tým pojmenoval „Game SDK“ ( sada pro vývoj softwaru ), název „DirectX“ pochází od jednoho novináře, který zesměšňoval schéma pojmenování různých knihoven. Tým se rozhodl pokračovat v používání tohoto schématu pojmenování a volat projekt DirectX.

První verze DirectX byla vydána v září 1995 jako Windows Games SDK. Byla to náhrada Win32 za rozhraní DCI a WinG API pro Windows 3.1 . DirectX umožnil všem verzím systému Microsoft Windows, počínaje Windows 95, začlenit vysoce výkonná multimédia. Eisler psal o šílenství stavět DirectX 1 až 5 ve svém blogu.

Chcete-li získat více vývojářů na palubě rozhraní DirectX, Microsoft blížil id Software je John Carmack a nabídl k portu Doom a Doom 2 ze systému MS-DOS do režimu DirectX, bezplatně, s id zachováním všech práv k publikování do hry. Carmack souhlasil a portingový projekt vedl Gabe Newell společnosti Microsoft . První hra byla vydána jako Doom 95 v srpnu 1996, první publikovaná hra DirectX. Microsoft hru výrazně propagoval a Bill Gates se objevil v reklamách na titul.

DirectX 2.0 se stal součástí samotného systému Windows s verzemi Windows 95 OSR2 a Windows NT 4.0 v polovině roku 1996. Protože Windows 95 byl sám o sobě stále nový a bylo pro něj vydáno jen málo her, Microsoft se intenzivně zabýval propagací DirectX vývojářům, kteří obecně nedůvěřovali schopnosti Microsoftu vybudovat herní platformu ve Windows. Alex St. John, evangelista pro DirectX, uspořádal na konferenci vývojářů počítačových her v roce 1996 propracovanou událost, kterou vývojář hry Jay Barnson popsal jako římské téma, včetně skutečných lvů , toga a něčeho, co připomíná halový karneval. Právě na této akci Microsoft poprvé představil Direct3D a DirectPlay a předvedl multiplayer MechWarrior 2, který se hraje přes internet.

Tým DirectX stál před náročným úkolem otestovat každé vydání DirectX na řadě počítačového hardwaru a softwaru . S každým beta a finálním vydáním byla testována řada různých grafických karet, zvukových karet, základních desek, procesorů, vstupních zařízení, her a dalších multimediálních aplikací. Tým DirectX také vytvořil a distribuoval testy, které umožnily hardwarovému průmyslu potvrdit, že nové návrhy hardwaru a vydání ovladačů budou kompatibilní s DirectX.

Před DirectX zahrnoval Microsoft OpenGL na své platformě Windows NT . V té době OpenGL vyžadoval „špičkový“ hardware a byl zaměřen na inženýrství a použití CAD . Direct3D měl být alternativou OpenGL ovládanou společností Microsoft, původně zaměřenou na používání her. Jak 3D hraní rostlo, OpenGL se vyvinul tak, aby zahrnoval lepší podporu pro programovací techniky pro interaktivní multimediální aplikace, jako jsou hry, což vývojářům dává na výběr mezi používáním OpenGL nebo Direct3D jako 3D grafického API pro jejich aplikace. V tu chvíli začala „bitva“ mezi příznivci multiplatformní OpenGL a Direct3D pouze pro Windows. Mimochodem, OpenGL byl v Microsoftu podporován týmem DirectX. Pokud se vývojář rozhodl použít OpenGL 3D graphics API, ostatní API DirectX jsou často kombinovány s OpenGL v počítačových hrách, protože OpenGL neobsahuje všechny funkce DirectX (jako je podpora zvuku nebo joysticku).

Ve verzi pro konkrétní konzoli byl DirectX použit jako základ pro rozhraní API konzoly Xbox , Xbox 360 a Xbox One společnosti Microsoft . API bylo vyvinuto společně mezi společnostmi Microsoft a Nvidia , které vyvinuly vlastní grafický hardware používaný původním Xboxem. Rozhraní Xbox API bylo podobné rozhraní DirectX verze 8.1, ale nelze ho aktualizovat jako jiné technologie konzoly. Xbox byl kódově pojmenován DirectXbox, ale toto bylo zkráceno na Xbox pro jeho obchodní název.

V roce 2002 společnost Microsoft vydala DirectX 9 s podporou používání mnohem delších programů shaderů než dříve s pixelovým a vertex shaderem verze 2.0. Společnost Microsoft od té doby pokračovala v aktualizaci sady DirectX a představila Shader Model 3.0 v DirectX 9.0c, vydaném v srpnu 2004.

V dubnu 2005 byla DirectShow odebrána z DirectX a místo toho přesunuta do sady Microsoft Platform SDK .

Bylo potvrzeno, že DirectX je přítomen v Microsoft Windows Phone 8 .

Real-time raytracing byl oznámen jako DXR v roce 2018.

Loga

Původní logo připomínalo varovný symbol deformovaného záření . Sporně byl původní název projektu DirectX „Manhattan Project“, což je odkaz na americkou iniciativu v oblasti jaderných zbraní . Alex St. John , tehdejší vedoucí evangelizace Microsoft DirectX, tvrdí, že konotace konečného výsledku projektu Manhattan ( jaderné bombardování Japonska ) je záměrná a že DirectX a jeho sesterský projekt Xbox (který sdílí podobné logo), měly vytlačit japonské výrobce videoher z jejich dominance v odvětví videoher . Microsoft však tento účet veřejně popírá, místo toho tvrdí, že logo je pouze umělecký design.

Komponenty

DirectX se skládá z několika API:

Společnost Microsoft přestala používat následující součásti:

Funkce DirectX je poskytována ve formě objektů a rozhraní ve stylu COM . Navíc, i když nejde o samotné součásti DirectX, spravované objekty byly postaveny na některé části DirectX, jako je Managed Direct3D a grafická knihovna XNA na Direct3D 9.

Microsoft distribuuje ladicí nástroj pro DirectX s názvem „PIX“.

Verze

DirectX 9

DirectX 9 byl vydán v roce 2002 pro Windows 98, Me a XP a v současné době jej podporují všechny následující verze. Společnost Microsoft pokračuje ve změnách v rozhraní DirectX 9.0c, což způsobuje ukončení podpory některých výše uvedených operačních systémů. Od ledna 2007 je vyžadován Windows 2000 nebo XP. To také představilo Shader Model 2.0 obsahující Pixel Shader 2.0 a Vertex Shader 2.0. Windows XP SP2 a novější obsahují rozhraní DirectX 9.0c, ale může vyžadovat novější redistribuovatelnou instalaci DirectX za běhu pro aplikace DirectX 9.0c kompilované z února 2005 DirectX 9.0 SDK nebo novější.

DirectX 10

Logo Microsoft DirectX 10 logo

Zásadní aktualizace rozhraní DirectX API, rozhraní DirectX 10 se dodává a je k dispozici pouze v systému Windows Vista a novějších verzích; předchozí verze systému Windows, například Windows XP, nemohou spouštět aplikace exkluzivní pro DirectX 10. Programy, které jsou spuštěny v systému Windows XP s hardwarem DirectX 10, se jednoduše uchýlí k cestě kódu DirectX 9.0c, nejnovější dostupné pro počítače se systémem Windows XP.

Změny pro DirectX 10 byly rozsáhlé. Mnoho dřívějších částí rozhraní DirectX API bylo v nejnovější sadě DirectX SDK zastaráno a jsou zachovány pouze kvůli kompatibilitě: DirectInput byl zastaralý ve prospěch XInput , DirectSound byl zastaralý ve prospěch systému Cross-platform Audio Creation Tool System (XACT) a navíc ztratil podporu pro hardwarově akcelerovaný zvuk, protože zvukový zásobník Vista vykresluje zvuk v softwaru na CPU. DirectPlay DPLAY.DLL byl také odebrán a byl nahrazen dplayx.dll; hry, které spoléhají na tuto knihovnu DLL, ji musí duplikovat a přejmenovat na dplay.dll.

Aby bylo dosaženo zpětné kompatibility, DirectX ve Windows Vista obsahuje několik verzí Direct3D:

  • Direct3D 9 : emuluje chování Direct3D 9 jako v systému Windows XP. Pokud jsou nainstalovány ovladače WDDM, jsou detaily a výhody modelu Windows Vista Driver Driver Model před aplikací skryty. Toto je jediné dostupné API, pokud jsou nainstalovány pouze grafické ovladače XP (XDDM), například po upgradu na Vista.
  • Direct3D 9Ex (interně známý během vývoje systému Windows Vista jako 9.0L nebo 9.L): umožňuje plný přístup k novým možnostem WDDM (pokud jsou nainstalovány ovladače WDDM) při zachování kompatibility se stávajícími aplikacemi Direct3D. Windows Aero uživatelské rozhraní spoléhá na D3D 9Ex.
  • Direct3D 10 : Navrženo podle nového modelu ovladače v systému Windows Vista a nabízí řadu vylepšení schopností a flexibility vykreslování, včetně Shader Model 4 .

Direct3D 10.1 je přírůstková aktualizace rozhraní Direct3D 10.0, která byla dodána s Windows Vista Service Pack 1 a vyžaduje ji . Toto vydání stanoví především několik dalších standardů kvality obrazu pro dodavatele grafiky a zároveň dává vývojářům větší kontrolu nad kvalitou obrazu. Přidává také podporu pro pole krychlových map, oddělené režimy prolnutí na MRT, export masky pokrytí z pixelového shaderu, schopnost spouštět shader pixelů na vzorek, přístup k více vzorkovaným hloubkovým nárazníkům a vyžaduje, aby grafická karta podporovala Shader Model 4.1 nebo vyšší a 32bitové operace s plovoucí desetinnou čárkou. Direct3D 10.1 stále plně podporuje hardware Direct3D 10, ale aby bylo možné využívat všechny nové funkce, je zapotřebí aktualizovaný hardware.

DirectX 11

Logo Microsoft DirectX 11 logo

Společnost Microsoft představila DirectX 11 na akci Gamefest 08 v Seattlu s hlavními plánovanými funkcemi, včetně podpory GPGPU ( DirectCompute ) a Direct3D 11 s podporou teselace a vylepšenou podporou více vláken, aby pomohla vývojářům videoher při vývoji her, které lépe využívají vícejádrový procesor procesory. Direct3D 11 běží na Windows Vista, Windows 7, Windows 8 a Windows 10. Na hardwaru třídy Direct3D 9/10/10.1 lze podporovat části nového rozhraní API, jako je například zpracování prostředků s více vlákny. Hardwarová mozaika a Shader Model 5.0 vyžadují hardware podporující Direct3D 11. Společnost Microsoft od té doby vydala technický náhled Direct3D 11. Direct3D 11 je přísná nadmnožina Direct3D 10.1 - všechny funkce hardwaru a rozhraní API verze 10.1 zůstanou zachovány a nové funkce budou přidány pouze v případě potřeby pro odhalení nových funkcí. To pomáhá zachovat zpětnou kompatibilitu s předchozími verzemi DirectX.

Společnost Microsoft vydala finální aktualizaci platformy pro Windows Vista 27. října 2009, což bylo 5 dní po počátečním vydání systému Windows 7 (spuštěno s Direct3D 11 jako základním standardem).

Od té doby byly vydány čtyři aktualizace pro DirectX 11:

  • DirectX 11.1 je součástí systému Windows 8 . Podporuje WDDM 1.2 pro zvýšení výkonu, vylepšenou integraci Direct2D (nyní ve verzi 1.1), Direct3D a DirectCompute a obsahuje knihovny DirectXMath, XAudio2 a XInput z rámce XNA. Je také vybaven stereoskopickou 3D podporou her a videa. DirectX 11.1 byl také částečně backportován do systému Windows 7 prostřednictvím aktualizace platformy Windows 7 .
  • DirectX 11.2 je součástí Windows 8.1 (včetně verze RT) a Windows Server 2012 R2 . Přidalo do Direct2D několik nových funkcí, jako jsou geometrické realizace. Přidala také kompozici odkládacího řetězce, která umožňuje, aby některé prvky scény byly vykresleny v nižších rozlišeních a poté složeny pomocí hardwarového překrytí s jinými částmi vykreslenými ve vyšším rozlišení.
  • DirectX 11.X je superset DirectX 11.2 běžící na Xbox One . Ve skutečnosti obsahuje některé funkce, jako například balíčky draw, které byly později oznámeny jako součást DirectX 12.
  • DirectX 11.3 byl oznámen spolu s DirectX 12 na GDC a vydán v roce 2015. Má doplnit DirectX 12 jako alternativu vyšší úrovně. Je součástí Windows 10.

DirectX 12

DirectX 12 byla oznámena společností Microsoft na GDC 20. března 2014 a byla oficiálně uvedena společně s Windows 10 29. července 2015.

Hlavním rysem nové verze DirectX bylo zavedení pokročilých nízkoúrovňových API pro Direct3D 12, které mohou snížit režii ovladačů. Vývojáři nyní mohou implementovat své vlastní seznamy příkazů a vyrovnávací paměti do GPU, což umožňuje efektivnější využití zdrojů prostřednictvím paralelního výpočtu . Hlavní vývojář Max McMullen uvedl, že hlavním cílem Direct3D 12 je dosáhnout „efektivity na úrovni konzoly v telefonu, tabletu a PC“. Vydání Direct3D 12 přichází společně s dalšími iniciativami pro grafická rozhraní API s nízkou režií, včetně AMD Mantle pro grafické karty AMD, Apple Metal pro iOS a macOS a multiplatformní Vulkan od Khronos Group .

V DirectX 12 bude fungovat podpora více adaptérů, která umožní vývojářům využívat v systému více GPU současně; podpora více GPU byla dříve závislá na implementacích dodavatelů, jako je AMD CrossFireX nebo NVIDIA SLI .

  • Implicitní podpora více adaptérů bude fungovat podobným způsobem jako předchozí verze DirectX, kde jsou rámce vykreslovány střídavě napříč propojenými GPU s podobným výpočetním výkonem.
  • Explicitní multiadapter poskytne vývojářům dva odlišné vzory API. Propojené GPU umožní DirectX prohlížet grafické karty v SLI nebo CrossFireX jako jeden GPU a využívat kombinované zdroje; vzhledem k tomu, že nepropojené GPU umožní DirectX využívat GPU od různých dodavatelů, například doplněním vyhrazeného GPU o integrovaný GPU na CPU nebo kombinací karet AMD a NVIDIA. Propracovaná smíšená nastavení více grafických procesorů však vyžadují výrazně pozornější podporu vývojářů.

DirectX 12 je podporován na všech GPU Fermi a novějších Nvidia, na čipech AMD založených na GCN a na grafických jednotkách Intel Haswell a novějších procesorů.

Na SIGGRAPH 2014 vydala společnost Intel ukázku počítačem generovaného pole asteroidů , ve kterém byla DirectX 12 prohlašována za 50–70% účinnější než DirectX 11 v rychlosti vykreslování a spotřebě energie CPU.

Ashes of the Singularity byla první veřejně dostupnou hrou využívající DirectX 12. Testování Ars Technica v srpnu 2015 odhalilo mírné regrese výkonu v DirectX 12 oproti režimu DirectX 11 pro Nvidia GeForce 980 Ti , zatímco AMD Radeon R9 290x dosáhl konzistentního zlepšení výkonu až 70% pod DirectX 12 a v některých scénářích AMD překonalo výkonnější Nvidii pod DirectX 12. Nesrovnalosti ve výkonu mohou být způsobeny špatnými optimalizacemi ovladačů Nvidia pro DirectX 12 nebo dokonce hardwarovými omezeními karty, která byla optimalizována pro Sériové provedení DirectX 11; přesná příčina však zůstává nejasná.

Vylepšení výkonu DirectX 12 na Xboxu nejsou tak zásadní jako na PC.

V březnu 2018 byl oznámen DirectX Raytracing (DXR), který umožňuje sledování paprsků v reálném čase na podporovaném hardwaru, a DXR API bylo přidáno do aktualizace Windows 10. října 2018.

V roce 2019 Microsoft oznámil příchod DirectX 12 na Windows 7, ale pouze jako doplněk pro určité herní tituly.

DirectX 12 Ultimate

Microsoft odhalil DirectX 12 Ultimate v březnu 2020. DirectX 12 Ultimate se sjednotí do společné knihovny na počítačích se systémem Windows 10 i na Xbox Series X a dalších konzolách Xbox deváté generace. Mezi nové funkce v Ultimate patří DirectX Raytracing 1.1, stínování s proměnlivou rychlostí, které dává programátorům kontrolu nad úrovní detailů stínování v závislosti na volbě designu, Mesh Shadery a Sampler Feedback.

Historie verzí

Časová osa vydání
Hlavní zprávy
1995 DirectX 1
1996 DirectX 2
DirectX 3
1997 DirectX 5
1998 DirectX 6
1999 DirectX 7
2000 DirectX 8
2001
2002 DirectX 9
2003
2004
2005
2006 DirectX 10
2007
2008
2009 DirectX 11
2010
2011
2012
2013
2014
2015 DirectX 12
2016
2017
2018
2019
2020 DirectX 12 Ultimate
Verze DirectX
Verze Datum vydání Poznámky
Hlavní, důležitý Méně důležitý Číslo
1 1,0 4,02,0000 30. září 1995
2 2.0 1996 Byl dodán pouze s několika aplikacemi třetích stran
2,0a 4.03.00.1096 5. června 1996 Windows 95 OSR2 a Windows NT 4.0
3 3,0 4,04,00,0068 15. září 1996  
4.04.00.0069 1996 Pozdější balíček DirectX 3.0 obsahoval Direct3D 4.04.00.0069
3,0a 4.04.00.0070 Prosinec 1996 Windows NT 4.0 SP3 (a vyšší)
Poslední podporovaná verze DirectX pro Windows NT 4.0
3,0 b 4.04.00.0070 Prosinec 1996 Jednalo se o velmi malou aktualizaci 3.0a, která vyřešila kosmetický problém s japonskou verzí systému Windows 95
4 4,0 Nikdy nevydáno DirectX 4 nebyl nikdy vydán. Raymond Chen ze společnosti Microsoft ve své knize The Old New Thing vysvětlil , že po vydání DirectX 3 začal Microsoft vyvíjet verze 4 a 5 současně. Verze 4 měla být krátkodobějším vydáním s malými funkcemi, zatímco verze 5 by byla podstatnější verzí. Kvůli nezájmu vývojářů her o funkce uvedené pro DirectX 4 došlo k odložení a velké množství dokumentů, které již odlišovaly dvě nové verze, vedlo k tomu, že se Microsoft rozhodl verzi 4 znovu nepoužívat k popisu funkcí určených pro verzi. 5.
5 5,0 4.05.00.0155 (RC55) 04.08.1997 K dispozici jako beta pro Windows 2000, který by se nainstaloval na Windows NT 4.0
5.2 4.05.01.1600 (RC00) 5. května 1998 Vydání DirectX 5.2 pro Windows 95
4.05.01.1998 (RC0) 25. června 1998 Exkluzivní Windows 98
6 6.0 4.06.00.0318 (RC3) 07.08.1998 Windows CE, jak je implementován na Dreamcast a dalších zařízeních
6.1 4.06.02.0436 (RC0) 03.02.1999
6.1a 4.06.03.0518 (RC0) 5. května 1999 Exkluzivní Windows 98 Second Edition . Toto je poslední verze, která běží na 486 nebo starším cpu.
7 7.0 4.07.00.0700 (RC1) 22. září 1999
4.07.00.0700 17. února 2000 Windows 2000
7.0a 17. prosince 1999 Vydáno pouze pro Windows 95 až 98
4.07.00.0716 (RC0) 08.03.2000
4.07.00.0716 (RC1) 2000
7.1 4.07.01.3000 (RC1) 14. září 2000 Exkluzivně pro Windows Me . Poslední verze má vestavěnou podporu vykreslování softwaru RGB
8 8,0 4.08.00.0400 (RC10) 10.11.2000
8,0a 4.08.00.0400 (RC14) 24. ledna 2001 Poslední podporovaná verze pro Windows 95 a poslední verze má podporu vykreslování softwaru v souboru dxdiag.exe
8.1 4.08.01.0810 25. října 2001 Windows XP , Windows XP SP1, Windows Server 2003 a Xbox exkluzivní
4.08.01.0881 (RC7) 8. listopadu 2001 Tato verze je pro operační systémy nižší úrovně ( Windows 98 , Windows Me a Windows 2000 )
8.1a 4.08.01.0901 (RC?) 2002 Tato verze obsahuje aktualizaci Direct3D (D3d8.dll)
8.1b 4.08.01.0901 (RC7) 25. června 2002 Tato aktualizace obsahuje opravu DirectShow v systému Windows 2000 (Quartz.dll)
8.2 4.08.02.0134 (RC0) 2002 Stejné jako DirectX 8.1b, ale obsahuje DirectPlay 8.2
9 9.0 4.09.00.0900 (RC4) 19. prosince 2002 Periodické hybridní 32bitové/64bitové aktualizace byly vydány pro DirectX 9, počínaje 4.09.00.0904 (RC0 pro DX 9.0c) v říjnu 2004, vydávány každé dva měsíce až do srpna 2007 a poté čtvrtletně. Poslední pravidelná aktualizace byla vydána v červnu 2010
9.0a 4.09.00.0901 (RC6) 26. března 2003
9,0b 4.09.00.0902 (RC2) 13. srpna 2003
9,0 c 22. července 2004 První verze 9.0c a poslední podporovaná verze pro Windows 98
4.09.00.0903 Exkluzivní Windows XP SP2
4.09.00.0904 (RC0) 04.08.2004
08.12.2006 Poslední podporovaná verze pro Windows 98 Druhé vydání
4.09.00.0904 6. srpna 2004 / 21. dubna 2008* Xbox 360 , Windows XP SP2, SP3*, Windows Server 2003 SP1 a Windows Server 2003 R2
27. října 2008 Poslední podporovaná verze pro Windows Me
10 10 6.00.6000.16386 30. listopadu 2006 Exkluzivní Windows Vista
10.1 6.00.6001.18000 04.02.2008 Windows Vista SP1 , Windows Server 2008
obsahuje Direct3D 10.1
6.00.6002.18005 28. dubna 2009 Windows Vista SP2 , Windows Server 2008 SP2
obsahuje Direct3D 10.1
11 11 6.01.7600.16385 22. října 2009 Windows 7 , Windows Server 2008 R2
6.00.6002.18107 27. října 2009 Windows Vista SP2 a Windows Server 2008 SP2 prostřednictvím aktualizace platformy pro Windows Vista a Windows Server 2008
6.01.7601.17514 16. února 2011 Windows 7 SP1 , Windows Server 2008 R2 SP1
11.1 6.02.9200.16384 1. srpna 2012 Windows 7 SP1 , Windows 8 , Windows RT , Windows Server 2012
11.2 6.03.9600.16384 18. října 2013 Windows 8.1 , Windows RT , Windows Server 2012 R2 , Xbox One
12 12 10.00.10240.16384 29. července 2015 Windows 10 , Xbox One
10.00.15063.0000 20. března 2017 Přidán Windows 10 , testování hloubkových vazeb a programovatelná MSAA
10.00.17763.0000 20. listopadu 2019 Windows 7 SP1
10.00.17763.0001 2. října 2018 Windows 10 , podpora DirectX Raytracing přidána
10.00.18362.0116 19. května 2019 Přidána podpora Windows 10 , stínování s proměnlivou sazbou (VRS)
10.00.19041.0928 10. listopadu 2020 Windows 10 , ??
10.00.22000.1000 5. října 2021 Windows 11 , Přidáno přepínání nativní obnovovací frekvence a vylepšené grafické funkce do Windows Subsystému pro Linux

Číslo verze podle nástroje Microsoft DxDiag (verze 4.09.0000.0900 a vyšší) používá pro čísla verzí formát x.xx.xxxx.xxxx. Stránka MSDN DirectX a Windows XP však tvrdí, že registr byl vždy ve formátu x.xx.xx.xxxx. Proto když výše uvedená tabulka uvádí verzi jako '4.09.00.0904', nástroj Microsoft DxDiag jej může mít jako '4.09.0000.0904'.

Kompatibilita

Různá vydání Windows zahrnovaly a podporovaly různé verze DirectX, což umožňuje novějším verzím operačního systému pokračovat ve spouštění aplikací navržených pro předchozí verze DirectX, dokud tyto verze nebudou postupně vyřazovány ve prospěch novějších API, ovladačů a hardwaru.

Rozhraní API, jako je Direct3D a DirectSound, musí interagovat s hardwarem, a to prostřednictvím ovladače zařízení . Výrobci hardwaru musí tyto ovladače zapsat pro rozhraní ovladače zařízení (nebo DDI) konkrétní verze DirectX a otestovat každý jednotlivý hardware, aby byl kompatibilní s DirectX. Některá hardwarová zařízení mají pouze ovladače kompatibilní s DirectX (jinými slovy, k použití tohoto hardwaru je třeba nainstalovat DirectX). Starší verze DirectX obsahovaly aktuální knihovnu všech aktuálně dostupných ovladačů kompatibilních s DirectX. Tato praxe však byla zastavena ve prospěch webového systému Windows Update pro aktualizaci ovladačů, který uživatelům umožňoval stahovat pouze ovladače relevantní pro jejich hardware, nikoli celou knihovnu.

Před DirectX 10 byl DirectX runtime navržen tak, aby byl zpětně kompatibilní se staršími ovladači, což znamená, že novější verze API byly navrženy tak, aby spolupracovaly se staršími ovladači napsanými proti DDI předchozí verze. Aplikační programátor musel dotazovat dostupné hardwarové možnosti pomocí komplexního systému „cap bitů“, z nichž každý je vázán na konkrétní hardwarovou funkci. Direct3D 7 a starší by fungovaly na jakékoli verzi DDI, Direct3D 8 vyžaduje minimální úroveň DDI 6 a Direct3D 9 vyžaduje minimální úroveň DDI 7. Runtime Direct3D 10 v systému Windows Vista však nelze spustit na starších ovladačích hardwaru kvůli výrazně aktualizovaný DDI, který vyžaduje jednotnou sadu funkcí a upouští od používání „cap bitů“.

Direct3D 10.1 zavádí „ úrovně funkcí “ 10_0 a 10_1, které umožňují použití pouze hardwarových funkcí definovaných v uvedené verzi rozhraní Direct3D API. Direct3D 11 přidává úroveň 11_0 a „10 úroveň 9“ - podmnožinu rozhraní Direct3D 10 API navrženého pro provoz na hardwaru Direct3D 9, která má tři úrovně funkcí (9_1, 9_2 a 9_3) seskupené podle běžných schopností „low“, „med "a" špičkové "grafické karty; běhový modul přímo používá Direct3D 9 DDI, který je součástí všech ovladačů WDDM. Úroveň funkcí 11_1 byla zavedena s Direct3D 11.1 .

.NET Framework

V roce 2002 společnost Microsoft vydala verzi rozhraní DirectX kompatibilní s rozhraním Microsoft .NET Framework , což umožňuje programátorům využívat funkce DirectX z aplikací .NET pomocí kompatibilních jazyků, jako je spravovaný jazyk C ++ nebo použití programovacího jazyka C# . Toto API bylo známé jako „ Managed DirectX “ (zkráceně MDX) a tvrdilo se, že pracuje na 98% výkonu podkladových nativních API DirectX. V prosinci 2005, únoru 2006, dubnu 2006 a srpnu 2006 vydala společnost Microsoft postupné aktualizace této knihovny, které vyvrcholily beta verzí s názvem Managed DirectX 2.0. Přestože Managed DirectX 2.0 konsolidovala funkce, které byly dříve rozptýleny po více sestavách do jedné sestavy, čímž se vývojářům softwaru zjednodušily závislosti na nich, vývoj této verze byl následně ukončen a již není podporován. Platnost knihovny Managed DirectX 2.0 vypršela 5. října 2006.

Během GDC 2006 společnost Microsoft představila XNA Framework , novou spravovanou verzi DirectX (podobnou, ale ne identickou s Managed DirectX), která má napomoci vývoji her usnadněním integrace DirectX, HLSL a dalších nástrojů do jednoho balíčku. Podporuje také provádění spravovaného kódu na konzole Xbox 360. XNA Game Studio Express RTM byla zpřístupněna 11. prosince 2006 jako bezplatné stažení pro Windows XP. Na rozdíl od runtime DirectX nebyly Managed DirectX , XNA Framework nebo Xbox 360 API (XInput, XACT atd.) Dodávány jako součást Windows. Od vývojářů se očekává, že budou redistribuovat komponenty runtime spolu se svými hrami nebo aplikacemi.

Žádný produkt společnosti Microsoft, včetně nejnovějších verzí XNA, neposkytuje podporu rozhraní DirectX 10 pro rozhraní .NET Framework.

Druhým přístupem pro DirectX ve spravovaných jazycích je použití knihoven třetích stran, jako jsou:

  • SlimDX , open source knihovna pro programování DirectX v .NET Framework
  • SharpDX, což je open source projekt poskytující úplné rozhraní DirectX API pro .NET na všech platformách Windows, umožňující vývoj vysoce výkonného vykreslování her, 2D a 3D grafiky i zvukových aplikací v reálném čase
  • DirectShow.NET pro podmnožinu DirectShow
  • Windows API CodePack pro .NET Framework , což je open source knihovna od Microsoftu.

Alternativy

Existují alternativy k rodině API DirectX , přičemž OpenGL , jeho nástupce Vulkan , Metal a Mantle mají nejvíce funkcí srovnatelných s Direct3D . Mezi příklady dalších API patří SDL , Allegro , OpenMAX , OpenML, OpenAL , OpenCL , FMOD , SFML atd. Mnoho z těchto knihoven je napříč platformami nebo má otevřené základny kódů. Existují také alternativní implementace, jejichž cílem je poskytnout stejné API, jako je tomu ve Wine . Kromě toho se vývojáři ReactOS pokoušejí znovu implementovat DirectX pod názvem „ReactX“.

Viz také

Reference

externí odkazy