DirectX

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Microsoft DirectX je sada knihoven poskytujících aplikační rozhraní (API) pro umožnění přímého ovládání moderního hardwaru. Jejich cílem je maximální využití možností hardware jak po stránce nabízených funkcí, tak z hlediska maximálního výkonu, což je využíváno pro tvorbu počítačových her, multimediálních aplikací i grafického uživatelského prostředí (viz Windows Aero). Původně měla API samostatná jména (a dodnes mají) například Direct3D, DirectDraw, DirectMusic a další. Název DirectX je tak zkratkou pro všechny tyto knihovny, kdy X nahrazuje název knihovny a později se tak stal i názvem celé kolekce. Když Microsoft začal vyvíjet vlastní herní konzoli, X bylo použito jako základ názvu (Xbox) a značilo tak, že i tato konzole poběží na technologii DirectX. Samotné X se pak objevilo i v názvech některých API posledních verzí DirectX, například Xinput nebo XACT.

Vývojářský kit pro DirectX (software development kit - SDK) pak obsahuje runtime knihovny v rozšiřitelné binární formě, společně s dokumentací pro použití. Původně se runtime knihovny DirectX instalovaly společně s hrami, nebo ručně uživatelem. Původní Windows 95 DirectX nativně neobsahoval, to až verze Windows 95 OEM Service Release 2. Od té doby byl DirectX součástí všech následujících Windows. Vývojářský kit je pak možné zdarma stáhnout na internetu. Přestože je SDK closed-source software, pro většinu částí je dostupný i zdrojový kód.

Direct3D 9Ex, Direct3D 10 a Direct3D 11 jsou dostupné pouze pro Windows Vista a novější, protože tyto verze spolupracují s novým nativním ovladačem WDDM, který byl představen právě ve Windows Vista. Tyto ovladače zahrnují novou správu video paměti, která podporuje virtualizaci grafického hardwaru v různých systémových aplikací, například správce oken.

Jak z názvu vyplývá, je DirectX produkt firmy Microsoft určeným výhradně pro operační systém Microsoft Windows.

Části[editovat | editovat zdroj]

DirectX se skládá z několika částí, rozdělených podle svého účelu. Rozdělení je podstatné pouze pro programátory, protože je k dispozici jako souhrnný balík obsahující všechny komponenty.

  • DirectX Graphics obsahující:
    • DirectDraw: pro vykreslování 2D grafiky (rastrová grafika); nahrazeno Direct2D), avšak stále používáno ve hrách a pro renderování videa multimediálních aplikací
    • Direct3D (D3D): pro vykreslování 3D grafiky
    • DXGI: pro zjištění grafických adaptérů a monitorů, které jsou k dispozici; poskytuje společný základ pro Direct3D a OpenGL
    • Direct2D: pro 2D grafiku
    • DirectWrite: pro fonty
  • DirectCompute: pro využití GPU pro výpočty
  • DirectInput: rozhraní pro vstupní zařízení (klávesnice, myš, joystick, různé herní ovladače); po verzi 8 nahrazeno rozhraním XInput pro ovladače Xbox 360 nebo standardní WM INPUT
  • DirectPlay: pro komunikaci přes počítačovou síť; po verzi 8 označeno jako zastaralé
  • DirectSound: pro přehrávání a záznam zvukových samplů
  • DirectMusic: pro přehrávání zvuků vytvořených DirectMusic; označeno za zastaralé
  • DirectX Media: zahrnující DirectAnimation pro webovou 2D/3D[1] animaci, DirectShow pro přehrávání multimédií a streamování, DirectX Transform pro webové interaktivní aplikace a Direct3D Retained Mode pro 3D grafiku vyšší úrovně; DirectShow obsahuje DirectX pluginy pro zpracování audiosignálu a DirectX Video Acceleration pro akcelerované přehrávání videa
  • DirectX Diagnostics (DxDiag): nástroj pro diagnostiku a podání zpráv o stavu jednotlivých komponent (audio, video, vstupní ovladače)
  • DirectX Media Objects: podpora pro streamované objekty (enkodéry, dekodéry a efekty)
  • DirectSetup: pro instalaci komponent DirectX a zjištění jeho aktuální verze

Historie[editovat | editovat zdroj]

V druhé polovině roku 1994 byl Microsoft připraven na vydání svého nového operačního systému, Windows 95. Důležitým rozhodujícím faktorem pro zákazníky pochopitelně bylo, co za aplikace budou moci na tomto systému spustit. Tři zaměstnanci Microsoftu, Craig Eisler, Alex St. John a Eric Engstrom, však byli znepokojeni, protože pro herní vývojáře byl lepší platformou předešlý operační systém MS-DOS, což by znamenalo málo aplikací pro Windows 95 a tedy neúspěch celého systému.

DOS dovoloval přímý přístup ke grafickým kartám, klávesnicím, myším, zvukovým zařízením a dalším částem systému, zatímco Windows 95 s ochranou paměti přístup ke všem zařízením neumožňoval. Microsoft tak potřeboval rychlé řešení pro programátory, vzhledem k tomu že Windows 95 měl brzy vyjít. Eisler, St. John a Engstrom tak společně pracovali na řešení, které později nazvali DirectX.

První verze DirectX byla vydána v září 1995 jako Windows Games Software Development Kit. Byla tak náhradou za DCI a WinG, API určené pro Windows 3.1. Díky DirectX tak všechny Windows, počínaje verzí 95, umožňovaly vysokou multimediální výkonnost. Následné přijetí DirectX herními vývojáři bylo ale velmi pozvolné. Přetrvávaly totiž obavy, že DirectX bude brzy nahrazen něčím novým (jako tomu bylo u DCI a WinG), že Windows 95 nepřekonají výkon MS-DOS, a že velký počet konzervativních vývojářů zůstane právě u MS-DOS.

DirectX 2.0 se stal přímou součástí Windows s příchodem verze Windows 95 OSR a Windows NT 4.0 v polovině roku 1996. Protože byl Windows 95 stále nový systém, pro který bylo vydáno malé množství počítačových her, tak se Microsoft rozhodl pro silnou propagaci u herních vývojářů, kteří nevěřili ve schopnosti Microsoftu vytvořit fungující herní platformu pro Windows. Duchovní otec DirectX, Alex St. John, měl pak na konferenci pro herní vývojáře v roce 1996 přednášku, kde mimo jiné nechyběli ani živí lvi, na které Microsoft poprvé představil Direct3D a DirectPlay, a demonstrovali multiplayer hry MechWarrior 2 hraný přes internet.

Tým okolo DirectX pak čelil výzvě testování všech verzí na veškerém dostupném hardwaru a softwaru. Velké množství grafických karet, zvukových karet, základních desek, CPU, vstupních zařízení, her a dalších multimediálních aplikací bylo testováno s každou beta verzí a finální verzí. Tento tým stál také za vývojem testovacího prostředí, který hardwarovým vývojářům dovoloval testovat, že nový hardware a jeho ovladače budou s DirectX plně kompatibilní.

V upravené verzi je DirectX použitý také na konzolích Xbox a Xbox 360. API pro Xbox bylo navrženo Microsoftem společně s firmou Nvidia, která pro konzole navrhla specifické grafické čipy. API pro Xbox je velmi podobné PC verzi 8.1, nicméně (jako ostatní technologie konzolí) je neaktualizovatelné na novější verzi. Pracovní název pro konzole Xbox byl původně DirectXbox, nakonec byl ale zkrácen.

Přehled verzí DirectX[editovat | editovat zdroj]

Verze DirectX zde uvedené musí také podporovat grafická karta!

DirectX verze Číslo verze Operační systém Datum vypuštění
DirectX 1.0 4.02.0095   30. září 1995
DirectX 2.0   Poskytováno pouze jinými programy než od Microsoft 1996
DirectX 2.0a 4.03.00.1096   15. září 1996
DirectX 3.0 4.04.00.0068   30, září 1996
4.04.00.0069 Dodáván v balíčku DirectX 3.0 včetně Direct3D 4.04.00.0069 1996
DirectX 3.0a 4.04.0070 Windows NT 4.0 SP3
Poslední podporovaná verze DirectX pro Windows NT 4.0
Prosinec 1996
DirectX 3.0b 4.04.0070 Opravoval pouze kosmetický problém s japonskou verzí Windows 95 Prosinec 1996
DirectX 4.0 Nikdy nebylo vypuštěno  
DirectX 5.0 4.05.00.0155 (RC55) Dostupné jako součást beta verze Windows NT 5.0 1997
DirectX 5.0 4.05.01.1721 / 1998 Windows 98 1998
DirectX 6.0 4.06.00.0318 (RC3) Windows 98 SE 1998
DirectX 6.1 4.06.02.0436 (RC0)   1999
DirectX 7.0 4.07.00.0700 (RC1) Windows 2000 a Windows ME 1999
DirectX 7.0a 4.07.00.0716 (RC1)   1999
DirectX 8.0 4.08.00.0400 (RC14) Xbox
Poslední podporovaná verze DirectX pro Windows 95
2000
DirectX 8.1 4.08.01.0810
4.08.01.0881 (RC7)
Windows XP 2001
DirectX 9.0 4.09.0000.0900 Windows Server 2003 2002
DirectX 9.0a 4.09.0000.0901   2003
DirectX 9.0b 4.09.0000.0902 (RC2)   2003
DirectX 9.0c 4.09.0000.0904 (RC0) Windows XP SP2 2004
DirectX 9.0c 4.09.0000.0904 První verze obsahující dynamickou knihovnu D3DX 2005
DirectX 9.0c (čtrnáctidenní aktualizace) 4.09.0000.0904 prosinec '05 až únor '06 update přidal XML formát několika třídám. Poslední verze: 26. červen, 2007
DirectX 10 (Windows Vista) 6.00.6000.16386 Nová verze Direct3D určená pouze pro Windows Vista 2006
DirectX 10.1 (Windows Vista) 6.00.6001.18000 Vylepšená verze Direct 10 o nové prvky, např.: stínování a hra se světly.
Součást Windows Vista Service Pack 1
4. února 2008
DirectX 11 6.01.7600.16385 Zlepšena podpora více GPU (multiGPU).
Součást Windows 7 a časem byl přidán i do Windows Vista
2009
DirectX 11.1 6.02.9200.16384 Windows 8, Windows RT, Windows Server 2012 1. srpna 2012

DirectX 10[editovat | editovat zdroj]

Tento významný update celého DirectX je dostupný pouze pro systém Windows Vista a novější. Předchozí verze Windows (například Windows XP) nemohou spouštět aplikace určené pro DirectX 10. Pokud je v systému s Windows XP hardware podporující verzi 10, pracuje v módu DirectX 9.0c, poslední verze, která pro Windows XP vyšla. Některé neoficiální projekty ale přinesly port DirectX i pro Windows XP.

DirectX přineslo významné změny. Spousta částí aplikačního rozhraní byla zavržena a v nejnovějším vývojářském kitu se zachovaly jen kvůli kompatibilitě. DirectInput nahradil novější Xinput, DirectSound nahradil systém XACT (Cross-platform Audio Creation Tool) a přišel o hardwarovou akceleraci, vzhledem k tomu, že Windows Vista renderují zvuk softwarově přímo v CPU. Knihovna DirectPlay, DPLAY.DLL, byla odstraněna a nahrazena knihovnou dplayx.dll. Počítačové hry, které tuto knihovnu využívaly, řeší problém duplikací knihovny a jejího následného přejmenování na dplay.dll. První hrou, přímo založenou na DirectX 10, byla 3D FPS Halo 2, která byla určená jen pro Windows Vista. Mezi další hry patří například Bioshock a Crysis.

Aby se dosáhlo zpětné kompatibility, DirectX ve Windows Vista obsahují několik verzí Direct3D:

  • Direct3D 9: emuluje chování Direct3D 9 tak, jak to bylo ve Windows XP. Veškeré nové funkce WDDM (Windows Display Driver Model) jsou pro aplikace zakázané, pokud jsou tyto ovladače nainstalovány. Je to jediné dostupné API v případě, že jsou nainstalovány ovladače pro Windows XP (XDDM), například při upgradu na Windows Vista.
  • Direct3D 9Ex (při vývoji Windows Vista také známé jako 9.0L nebo 9.L): povolují přímý přístup ke všem funkcím WDDM (za předpokladu, že jsou ovladače WDDM nainstalovány), při zachování zpětné kompatibility. Windows Aero plocha běží právě na D3D 9Ex.
  • Direct3D 10: Designováno pro nový model ovladačů ve Windows Vista (WDDM) obsahující několik zlepšení renderovacích schopností a flexibility, například Shader Model 4.

DirectX 10.1 je přírůstkový update verze 10.0, který vyšel společně s Windows Vista Service Pack 1, který také vyžadoval. Tato verze upravuje několik standardů kvality obrazu, díky kterým mají výrobci grafických karet nad kvalitou obrazu větší kontrolu. Také například přidává podporu cube mapování, exportování krycích masek z pixel shaderů, schopnost provozu pixel shaderu po snímcích a vyžaduje, aby grafické karty podporovaly Shader Model 4.1 a vyšší a 32 bitové operace s plovoucí desetinnou čárkou. DirectX 10.1 plně podporuje hardware DirectX 10.0 ale pro správný chod všech nových funkcí je potřeba hardware s podporou verze 10.1.

DirectX 11[editovat | editovat zdroj]

Microsoft představil DirectX 11 v Seattlu na Gamefest 08. Hlavní novinky pak byly podpora GPGPU (DirectCompute) a zlepšení vícejádrové podpory pro herní vývojáře, pro jednodušší odladění her pro vícejádrové procesory. DirectX 11 podporuje Windows Vista, 7 a 8. Některé součásti nového API fungují i s hardwarem určeným pro starší verze 9/10/10.1, zatímco například Shader Model 5.0 vyžaduje hardware s přímou podporou DirectX 11. Verze 11 je pak rozšířením verze 10.1 – veškerý hardware a funkce 10.1 byly zachovány, nové funkce se zapínají pouze pokud je vyžaduje aplikace. To pomáhá zachování plné kompatibility se staršími verzemi DirectX.

Microsoft vydal finální update pro Windows Vista pět dní po oficiálním vydání Windows 7, které DirectX 11.0 obsahovaly ve své základní výbavě.

Direct X 11.1 je přímou součástí Windows 8. Podporuje WDDM 1.2 pro zlepšení výkonu, zlepšení integrace Direct2D, Direct3D a DirectCompute a přináší DirectXMath, XAudio2 a knihovny z XNA framework pro Xinput.

DirectX 11.2 pak bude exkluzivně pouze pro Windows 8.1 (podobně jako DirectX 10.1 pro Windows Vista Service Pack 1).

Direct3D[editovat | editovat zdroj]

Direct3D je programové API rozhraní nabízející aplikacím širokou škálu funkcí pro práci s 3D grafikou.

Související informace naleznete také v článku Direct3D.

Reference[editovat | editovat zdroj]

  1. 3D Animation of SPACE FIGHTER by DIRECT ANIMATION

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]

Kategorie DirectX ve Wikimedia Commons