Přejít k hlavnímu obsahu

DirectX 10: Realistické 3D scény ve Windows Vista

DirectX 10: Realistické 3D scény ve Windows Vista

Kompletně přepracované rozhraní DirectX určené výhradně pro nový operační systém od Microsoftu slibuje doslova kvantitativní skok, pokud jde o bohatost grafických detailů.
Thomas Littschwager

Po čtyřech letech přichází Microsoft ve Windows Vista s novou verzí svého rozhraní pro hry a grafiku. Rozhraní DirectX 10 slouží stejně jako jeho předchůdci jako prostředník mezi hrami a hardwarem – grafickou a zvukovou kartou a vstupními zařízeními.
Nejvíc novinek doznala grafická komponenta Direct3D 10. Tady Microsoft na rozdíl od posledního skoku z verze DirectX 8.1 na 9.0 místo několika kroků rovnou kompletně přepracoval architekturu grafického rozhraní API (application control interface). Aby bylo vůbec možné zavést funkce jako „Unified Shader“, vlastní výpočty geometrie, nový model ovladače grafických karet a fyzickou akceleraci, museli se vývojáři v Microsoftu vzdát zpětné kompatibility s verzí DirectX 9. Staré funkce jsou tak už jenom emulovány. V tomto článku vás seznámíme s těmi nejdůležitějšími proměnami Direct3D 10, nejdůležitější komponenty rozhraní DirectX 10.

Unified Shader pro optimální zatížení grafického čipu

Největší novinkou Direct3D 10 je zavedení modelu shaderu 4.0, který teď vyžaduje úplnou programovatelnost grafického čipu (GPU). Dosud existovaly v GPU vyhrazené interní výpočetní jednotky – vertex a pixel shadery –, které sloužily k výpočtům modelové mřížky (zpracování „vrcholů“) a ke zpracování povrchu (pixelů) objektů. Toto oddělení vedlo k tomu, že výpočetní jednotky v čipu zůstávaly často zbytečně nevyužité.
Direct3D 10 teď přichází s architekturou Unified Shader (sjednoceného shaderu), která dokáže podle požadavků plnit různé úkoly. Tímto kompletním přepracováním grafického procesoru je na jedné straně dosahováno podstatně lepšího vytížení hardwaru, na druhé straně nyní existuje možnost pověřovat grafický procesor i dalšími úkoly, například jednoduchými fyzikálními výpočty. Díky přizpůsobivému designu čipu je grafický procesor s rozhraním DirectX 10 schopen převzít různé úkoly náročné na výpočetní výkon, s nimiž se dosud musel trápit hlavní procesor systému.

S geometrickým shaderem teď dokonce rostou květiny

Jednu z výhod flexibilního programování už DirectX 10 hned využívá. Nové „geometrické shadery“ podobně jako vertexové shadery počítají vnější podobu objektů, navíc však dokáží přidáváním trojúhelníků měnit tvar objektu. Tato na první pohled nijak zvláštní novinka umožňuje grafickému čipu vůbec poprvé přímo ovlivňovat jednotlivé prvky v 3D scénách. Díky změně objektů jsou možné nejen pozoruhodné funkce jako zobrazení rostoucích rostlin bez využití hlavního procesoru (díky vytváření řetězců trojúhelníků), ale také výpočet různých fyzických efektů, jako třeba valící se mlhy nebo vody. Ulehčením hlavnímu procesoru se uvolní dostatek zdrojů na to, aby byly 3D scény realističtější a detaily byly věrnější.

Lepší provázání nových 3D ovladačů s operačním systémem

Každá nová verze DirectX potřebuje také nové ovladače grafických karet. V případě DirectX 10 nastává trochu větší změna. Nový model WDDM (Windows Display Driver Model) totiž předepisuje rozdělení do dvou oddělených provozních režimů. Tento požadavek vychází ze skutečnosti, že operační systém zpravidla běží současně ve dvou různých provozních režimech – v režimu jádra a v uživatelském režimu. Zjednodušeně řečeno, v uživatelském režimu jsou spuštěny všechny aplikace, zatímco v režimu jádra jsou aktivní ovladače. Každý přechod mezi těmito režimy je náročný na prostředky.
Ovladače grafických karet fungovaly dosud jenom v režimu jádra, zatímco hry a rozhraní DirectX, tedy aplikace, byly spuštěné v uživatelském režimu. Pokud byla odeslána data o 3D scéně do rozhraní DirectX, musela být jednotlivě předávána ovladači, což u každého jednotlivého prvku znamenalo náročný přechod z jednoho režimu do druhého. Tento postup je znám také jako „problém malých dávek“. Windows Vista a DirectX 10 se ho zbavily a ovladač grafických karet je nyní rozdělen na oba režimy. Ta část, která běží v uživatelském režimu, se stará o všechny požadavky na zobrazení, shromažďuje je a předává je pak jako kompletní balík druhé, „jádrové“ části. Tím se podstatně zkracuje časová prodleva.
Grafické ovladače DirectX však nabízejí ještě další výhodu: Windows Vista není potřeba po nainstalování restartovat. Operační systém navíc dokáže rozpoznat případné problémy a ovladač v případě nutnosti nezávisle na uživateli sám restartovat.

Kompletní vybavení aneb Grafickým čipům už nesmí chybět žádná funkce

Na rozdíl od předcházející verze DirectX 9 nemají výrobci grafických karet podporujících rozhraní DirectX 10 už na výběr a musejí do čipu zabudovat kompletní sadu funkcí. U DirectX 9 existovaly tzv. „capability bits“, které rozhraní DirectX prozrazovaly parametry grafického procesoru. Pokud grafický čip některé funkce nepodporoval, emulovalo je rozhraní DirectX 9.
V případě DirectX 10 však musejí být všechny funkce DirectX zabudovány i do hardwaru. Přesto není nutné ani v budoucnu používat už jenom grafické karty podporující DirectX 10. Na novém modelu ovladačů pro DirectX 10 totiž vydělá i starší hardware a software.

Nic pro XP: DirectX 10 si vychutnají jenom uživatelé Windows Vista

Největším nedostatkem rozhraní DirectX 10 je alespoň zpočátku jeho exkluzivita. V současné době totiž Microsoft neplánuje vydání verzí pro jiný operační systém než Windows Vista. Uživatelé XP tak přijdou zkrátka. Než většina hráčů přejde na systém Vista, bude to ještě nějakou dobu trvat. Momentálně totiž není moc her, které by si poradily s Windows Vista, a také hardware podporující DirectX 10 je zatím ještě příliš drahý.
S tím však už bude zřejmě brzy konec. Oba výrobci grafických čipů totiž oznámili, že už ve druhém čtvrtletí letošního roku začnou nabízet grafické karty s podporou DirectX 10 v celém cenovém rozpětí (nVidia řadu GeForce 8, AMD/ATI modely R600).
Zatím také není jasné, zda bude možné dnešní hry upravit například opravnými balíky tak, aby podporovaly rozhraní DirectX 10. Oficiálně by měl být zatím díky bezplatné aktualizaci s DirectX 10 kompatibilní jenom Flight Simulator 10 od Microsoftu (původně pro DirectX 9). Jako nativní hry pro rozhraní DirectX 10 byly už ohlášeny nové verze 3D trháků „Crysis“, „Alan Wake“ a „Unreal Tournament 2007“.

Ze hry na monitor: Jak vzniká 3D scéna s rozhraním DirectX 10

Prostřednictvím rozhraní DirectX 10 se přesouvá víc úkolů z hlavního procesoru na grafický procesor. O výpočet obrazu pro monitor se v něm starají nové sjednocené shadery. Nový geometrický shader dokonce dokáže aktivně měnit obrysy objektů. To bylo dosud vyhrazeno hlavnímu procesoru. Grafický procesor teď vypočítává i jednoduché fyzikální efekty.

Dokumenty ke stažení