Strana 2 z 3
- Microsoft DirectX 11 – novinky
Máme rok 2009, zapomeňme na minulost a hleďme do budoucnosti. Tou je minimálně pro následující 2-3 roky v oblasti grafik, her a dalších programů DirectX 11. Toto rozhraní samozřejmě obsahuje všechno, co obsahovaly verze předchozí. Primárně však staví na DX10.0 a DX10.1.
DX10.0, který vyšel spolu s operačním systémem Vista, byl opravdu významnou a přelomovou verzí DirectX, ačkoliv zdaleka nebyl hotov. DX10. stanovil úplně nové standardy a spolu s ním vyšla i nová generace grafik s odlišnou architekturou čipů, které pokračují i v současnosti s dalšími významnými vylepšeními. DX10.0 ale zdaleka neměl vše, co měl mít a Microsoft do něj nestačil dodat vše, co chtěl. Následoval významný update v podobě DirectX 10.1, který obsahoval podstatná vylepšení, pokud jde o nové efekty i nové funkce, zejména Tesselaci a vylepšené AA profily atd.
DirectX11 pak primárně staví a rozšiřuje právě DirectX 10.1 ale významnou verzí DX je hlavně proto, že obsahuje i DirectCompute 11 a nové funkce, které opravdu výrazně ovlivní další vývoj softwaru na dnes nejrozšířenější Windows platformě. Teoreticky (pravděpodobně i prakticky) může DX11 aplikace běžet i na DX10.0 nebo DX10.1 HW s tím, že bude podporovat jen ty funkce, které jí daný HW umožní. Samozřejmě využít plně novinek DX11 může jen DX11 HW. Záležet bude na ovladačích a softwaru samotném. A jaké jsou hlavní přínosy a novinky DX11?
Tahle záležitost je asi vůbec tou největší a nejpřínosnější novinkou, která opravdu nejvíce změní. A právě kvůli této věci je DX11 tak velmi dobře přijímán vývojáři. DX11 totiž zavádí přímou podporu Multi-threading, tedy vícevláknového zpracování a podporu více procesorových jader (později pravděpodobně i grafických) a tedy optimalizaci využití dostupných prostředků.
V současnosti je optimalizace na vícejádrové CPU věcí dost drahou a většina her využije maximálně dvě jádra. Optimalizace pro 3-4 jádrové CPU, už jsou drahé a dělá jej jen málokdo. DX11 umožní optimalizace pro vícejádrové CPU všem a protože by to mělo fungovat i s DX10 HW grafikou. Bude to přínos skutečně pro všechny, ale zde uvidíme, osobně si myslím, že primárně to bude využito pro skutečně nové hry s podporou DX11 a pro starší hry s DX9/10 by musely vyjít nějaké patche, ačkoliv to asi v jejich případě není z výkonového hlediska úplně zapotřebí a vývojáři se budou spíše věnovat vývoji novinek.
Někdy se tomu říká výpočetní shader. Tohle je velká novinka, která z grafické karty dělá více než grafickou kartu, vykreslující obrázky na monitor. Jde zkrátka o to, že grafická jádra a karty jako celek jsou dnes natolik vyspělé, že jsou funkce, které vykonají výrazně rychleji, než to dnes zvládne i ten nejrychlejší procesor současnosti.
Právě v této oblasti jsou ale také největší spory a největší soutěž o HW přístup k tzv. GPGPU. DX11 HW bude pro využití GPGPU mnohem výrazněji optimalizován než byl DX10 HW. Nově tak budou moci GPU vykonávat kromě výpočtů týkajících se obrazu, i například fyzikální efekty, výpočty související s umělou inteligencí a další úlohy, které by jinak zastával procesor v současné době často navíc bez optimalizací pro ideální využití více jader, což je důvodem onoho výkonového omezení grafik procesory.
Jenže DirectCompute zvládne i různé další grafické efekty, pokročilé vyhlazování, stínování a další hromady náročných efektů, které dnes nejsou možné (hlavně kvůli výkonu grafik). V této souvislosti si tak nejnověji řada herních vývojářů pochvaluje právě tyto nové efekty, které nazývají post-processing efekty.
(DIRT2 DX11 2009)
Výhodou této technologie je samozřejmě podpora paralelní konstrukce grafik. Včetně řazení 1D, 2D i 3D Atd. polí vláken ke zpracování. Například ATI RV670/770 (DX10.1) a RV870 (DX11) má architekturu 5D. Samozřejmě je to standardizovaná technologie GPGPU výpočtů, takže žádná vázanost na GPGPU technologii ATI STREAM nebo NV CUDA. Ty nejsou GPGPU standardy a jsou to jen prostředí jednotlivých výrobců, které s nástupem standardizovaných jazyků a prostředí jako jsou OpenCL a DirectCompute11 se rázem ocitají na vedlejší koleji. Nikdo normální nebude programovat aplikaci k využití jen na jedné značce grafik, když to může naprogramovat v prostředí, které je standardizované. Samozřejmě DirectCompute je přímou konkurencí k OpenCL.
Tuhle technologii nemůžeme vydávat za novou, jako takovou. Princip už je známý hodně dlouho a dokonce se HW opora pro tuto technologii objevuje v ATI grafikách už od modelu Radeon 8500, tedy kolem roku 2001. Tesselaci podporuje i čip ATI XENOS v konzoli Xbox360. Tato funkce je hodně zajímavá, protože umožňuje zvýšení počtu polygonů, tedy sítě, ze kterých jsou tvořeny objekty. Ty jsou tak mnohem detailnější, a tedy i realističtější.
Až do vydání DirectX10.1 (DX10.0 ji nemá), neměla tato technologie standardizovanou DX podporu. V DX10.1 již je a DX11 ji dále rozšiřuje a rozvíjí. Tesselace se tak stává běžnou součástí DX a je možné ji s odpovídajícím HW naplno využití. Do vydání DX10.1-DX11 museli herní vývojáři, pokud chtěli tuto technologii využít, napsat hru na míru ATI a je jasné, že by to na jiných grafikách nefungovalo. To už je ale minulost. Je ovšem otázka, zda přítomnost DX10.1 na ATI HD 3000/4000 bude v tomto ohledu nějakým přínosem. Je možné, že ano, ale DX11 tesselační instrukční sady přeci jen obsahuje s dalšími optimalizacemi proti těm v DX10.1.
Společnost ATI a od převzetí AMD i AMD, vnímá Tesselaci jako nadějnou technologii a ve spolupráci se společností Microsoft má tedy konečně naději na standardizované uplatnění. Obě firmy jmenují právě tuto technologii na čelních příčkách toho, co DX11 přináší. Technologie má ale několik ale. V první řadě je to její náročnost, která je tak velká, že na to běžné jednotky nestačí a v grafice tak musí být speciální Tesselační jednotky, které se o to postarají. Ty však, když není Tesselace využito, zůstávají také nevyužity. Problém grafických jader ATI R600/RV670/770, kdy část jich zůstala ve hrách prostě nevyužita. Moderní Tesselační jednotka kterou najdeme v nadcházejícím DX11 čipu ATI RV870 je plně programovatelná, takže není jen pevně danou jednotkou s pevným využitím. Jak bude vypadat v konkurenčním NVIDIA G300 se můžeme zatím jen dohadovat, API a jeho požadavky jsou ale dané.
DX11 toho přináší i více, například vylepšenou kompresy a podporu nových formátů textur.
Samozřejmě výše uvedené technologie jsou daleko složitější, pro naše uživatelské pochopení a představu to stačí tak, jak jsme si to nastínili. To jsme si ale teprve řekli, co to je a ne to, co od toho máme skutečně očekávat, jako uživatelé. Tak pojďme na to …
|