Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

DirectX 11 - seznámení s budoucností

16.2.2009, Petr Štefek, recenze
DirectX 11 - seznámení s budoucností
V dnešním článku nahlédneme pod pokličku budoucího rozhraní DirectX 11, které je do značné míry vskutku revolučním API, jež bude zajímavé jak pro vývojáře, tak pro nás uživatele. Blýská se nám tedy na lepší časy?
Pokrok v počítačové 3D grafice je hlavním tahounem pro vývoj nového a stále rychlejšího hardware, který dokáže virtuální svět stále více přibližovat tomu reálnému, do kterého každé ráno vstáváme a žijeme v něm. Není tajemstvím, že o překotný vývoj hardware v posledních 10 letech se zasloužily hlavně hry a zábava s nimi spojená, která samozřejmě vydělává peníze. Vždyť si musíme uvědomit, že herní průmysl začíná velmi zdatně konkurovat doposud nedotknutelné filmové "mašině" na peníze.

GPU (Graphics Processing Unit) je srdcem každé grafické karty a mnoho méně znalých čtenářů by mohlo být přesvědčeno, že jsou to právě ona grafická jádra, která jsou alfou a omegou pro tvoření grafiky a její další zlepšování do budoucna. To je samozřejmě pravda, ale pouze částečně, neboť hlavní tíha leží na bedrech speciálního software, který známe pod pojmem API (Application Programming Interface). Každá nová generace tohoto speciálního rozhraní přináší mnohá vylepšení pro rozšířené možnosti pro vývojáře, kterým odstraňuje bariéry mezi tím, jak se vypořádat se stále vzrůstajícími nároky na vizuální stránku her.



Narozdíl klasického CPU grafický hardware alias GPU nemá klasický instrukční set, pod kterým mohou být nástroje a software vyráběny. Abychom mohli nějakým způsobem upotřebit výpočetní výkon tohoto hardware, tak nezbytně potřebujeme standardizované rozhraní, které odstraní nutnost přemýšlet nad tím, jaké GPU že nám to pod API běží. Díky tomu je pro vývojáře právě API naprosto stěžejním základem pro vývoj a určuje jasně programátorům hranice, za které nemohou při psaní her zajít. Standardy jsou do jisté míry omezující, ale díky nim můžeme hrát největší herní pecky, jako je Crysis na domácím systému s grafickou kartou ATI a stejně tak dobře i na kamarádově počítači s grafickou kartou z produkce Nvidie.

Klíčová úloha API je zpracování údajů o 3D objektu ve vytvářené virtuální scéně (jinak řečeno v 3D světě) a poslání těchto údajů spolu s dalšími doprovodnými daty grafickému hardware s instrukcemi, co že má hardware s těmito daty vlastně udělat. Proces zpracovávání dat je prováděn krok po kroku v přesně daném sousledu a obvykle je označován jako pipeline. Grafická pipeline má různé úrovně, kde jsou prováděny odlišné operace.



Prvním krokem je zpracování tzv. vertexových dat, což není nic jiného, než pozice vrcholů objektů, kterými jsou v naprosté většině trojúhelníky. Ty mohou být dále zpracovávány nebo modifikovány dle potřeb. Po tomto kroku jsou 3D objekty rozloženy do 2D fragmentů, které známe jako pixely (tento proces je obvykle nazýván jako rasterizace). Tyto pixely jsou poté po jednom zpracovány a jsou na ně nanášeny barvy dle informací o texutuře (povrchu) a aplikovány světelné techniky (je na daném pixelu simulován stín nebo světlo popřípadě odraz atd.). Když jsou takto pixely zpracovány, pak už zbývá jen jediná věc, a to zobrazit je na výstup na monitoru vašeho počítače. Tento proces je samozřejmě mnohem složitější, ale pro základní představu nám to v tomto článku postačí.

V posledních pár letech se do popředí dostalo jediné grafické rozhraní (API), které všichni známe jako DirectX. OpenGL se stalo minoritní záležitostí v oblasti profesionální grafiky (posledním mohykánem v oblasti vývoje pod OpenGL byl Id Software se svým enginem pro hru Doom 3). OpenGL ale není zdaleka tak mrtvé, jak by se mohlo na první pohled zdát, neboť najde využití ve zbrusu novém univerzálním rozhraní OpenCL.

Dnes si ovšem budeme povídat o rozhraní DirectX, které prosadil Microsoft již před pěknou řádkou let hlavně díky integraci do svého operačního systému Windows a také nákladné podpoře pro vývojáře. V současné době máme aktuálně DirectX ve verzi 10, ale na trhu se stále objevují také DirectX 9 hry založené na starších enginech. Pravdou zůstává, že o rozdílu ve vizuální kvalitě her založených na novější verzi DirectX 10 v porovnání se starším DirectX 9 se vedou stále spory a na internetu najdete mnoho rozborů vizuální kvality oblíbených her. Často se tedy stává, že hra zpřístupňuje maximální úroveň detailů pouze pod DirectX 10, aby tak ospravedlnila jeho existenci z hlediska lepší vizuální kvality. Microsoft předem avizoval, že DirectX 10 bude především o vyšší rychlosti, která dopomůže k vyššímu výkonu u totožných her. Obecně vše tak jednoznačné nebylo a i dnes se běžně stává, že hry jsou pod DirectX 9 rychlejší.

Microsoft bude s velkou pravděpodobností čekat s uvedením zbrusu nové verze DirectX 11 do doby, než bude na trhu kompatibilní hardware, jenž umožní jeho akceleraci a plného využití. Her založených na DirectX 11 enginech se ovšem můžeme dočkat mnohem později a nebude překvapením, že se tak stane v řádech mnoha měsíců později. Výrobci jako Nvidia proklamovali již od začátku, že jejich další generace čipů přeskočí vylepšené rozhraní DirectX 10.1 a soustředí se rovnou na přicházející verzi. Microsoft velmi pravděpodobně integruje opět novou verzi DirectX do svého nového operačního systému Windows 7, který by mohl spatřit světlo světa koncem tohoto roku.



Hlavní změny v DirectX 11 se týkají hlavně grafické pipeline, kde je velký pokrok ve způsobu, jak se data o 3D scéně zpracovávají díky rozšířeným možnostem hardware a samotného rozhraní. Novinkou je především teselace (Tesselation – spolupracuje hull shader, samotný teselátor a klasické shadery) a tzv. výpočetní shader (Compute Shader), kde obě tyto vlastnosti mají za úkol opět o kousek přiblížit virtuální svět tomu reálnému.

DirectX 11 je v podstatě nadřazeným rozhraním DirectX 10.1, kde oproti němu přidává mnoho vylepšení, ale všechny vlastnosti a funkce předchozího rozhraní zůstávají v DirectX 11 zachovány. Pokud nyní uvažujete nad tím, že z této situace může velmi profitovat AMD se svými DirectX 10.1 čipy, tak se nemýlíte. Teoreticky je možné, že majitelé Radeonů HD4xx0 budou mít pod novým rozhraním výhodu kompatibility. Zatím to je ovšem pouze teorie, neboť jsme již nesčetněkrát byli svědky toho, že technologická převaha byla v reálných aplikacích k ničemu.

Změny v procesování dat v grafické pipeline umožní vývojářům napsat programy (shadery) k různým typům úloh, kde tyto malé změny umožní, aby tyto programy byly více komplexní, rychlejší a s kvalitativně lepšími výsledky. Ke všemu ještě nové DirectX 11 umožňují podporu paralelního programování, takže nebude výjimkou, že samotná hra bude akcelerovat některé úlohy skrz grafické karty namísto procesorů tak, jako tomu bylo dodnes.
Doporučujeme náš velký přehled desktopových grafických čipů.