DirectX 11- o krok blíže realitě

27. 1. 2010 07:00    Rubrika: Technologie    Autor: Bořek Kuzník

Před týdnem jsme si přiblížili technologii DirectX jako takovou a podívali se na její vývoj. Dnes se podíváme na jeho novou verzi - DirectX 11. Ta by dle slov herních vývojářů měla přinést velkou revoluci v počítačové grafice.

DirectX 11- o krok blíže realitě

DirectX 11 vychází z verze 10.1, která byla uvedena rychle po verzi 10, ale ani jedna se mezi veřejností moc neuchytila. Důvodem byla dostupnost pouze u nového operačního systému Windows Vista, jenž se netěšil zrovna velké oblibě. Valná většina potencionálních uživatelů tak zůstala věrná Windows XP a přechod na DirectX 10 drhl. Navíc chyběla motivace, jelikož samotný DirectX 10 příliš nového nepřinesl (ani lepší grafiku a ani zrychlení), což bylo důsledkem mizerné podpory programátorů her právě z důvodu nerozšířenosti Visty.

Dnes ovšem Microsoft dosáhl u Windows Vista rozšíření kolem 30% (často i díky prodeji notebooků, kde byla Vista předinstalovaná), navíc s příchodem Windows 7 a novým grafickým kartám s podporou DX 11 se zdá, že nová verze DirectX má dveře otevřené. K tomu všemu přispívají další argumenty:

  • 1. DX 11 vychází a zdokonaluje DX 10.1 s kompletními funkcemi, tak jak to Microsoft chtěl zrealizovat a navíc měl na tuto realizaci dostatek času.
  • 2. Výše zmíněná rozšířenost Windows Vista a předpoklad velmi rychlého rozšíření Windows 7.
  • 3. S DX 11 počítá nové chystaná řada konzolí připravovaná na rok 2012 (Xbox a Wii).
  • 4. DX 11 se těší značné přízni vývojářů kvůli velice dobré optimalizaci a novým funkcím.

Jednou z velice zajímavých novinek, ovšem nikoliv tak převratnou, je podpora DirectX 10 hardware. Takže nebude problém, aby DX 11 pracovalo spolu s grafickou kartou pro DX 10. Dokonce by to mělo přinést znatelný nárůst výkonu, pouze pokročilé funkce DX 11 nebudou na takovéto grafické kartě dostupné.

A jaké nové technologie nám DX 11 přinese?

Multi-threading:

Tak toto je asi největší novinka a do budoucna bude znamenat nutnost. Jedná se o podporu vícejádrových procesorů. Ať už CPU, tak samozřejmě i GPU. V současné době jsou hry většinou optimalizované pro dvou-jádrové procesory a rozšíření na čtyř-jádro již většinou nepřijde kvůli vysoké náročnosti (finanční). DX 11 toto celé odstraní. V dnešní době ještě nenajde úplné uplatnění, ale v blízké budoucnosti, kdy budou standardem mnohojádrové procesory a grafiky, to bude nezbytnost pro souběžný výpočet (1 vlákno – 1 funkce nebo objekt).

DirectComputing (Compute Shader):

Tak toto je další velice často diskutovaná novinka. Jedné se o rozšíření grafické pipeline o možnost zpracovávat běžné algoritmy, což dříve nebylo možné neboť jak pipeline, tak pixel sharder neumožnil svobodu v použití datových struktur (větvení), a tím značně svazoval vývojářům ruce. Toto posunuje grafickou kartu a DirectX dále od obyčejného renderingu.

DirectX 11 do značné míry uvolní vývojářům ruce v překonávání problému spojených s obecným kódem a stejně jako další součásti bude mít k dispozici určité množství sharder procesorů. Ovšem s tím souvisí i hardware- bude muset být tomuto přispůsoben, což znamená hlavně větší flexibilitu celého jádra. GPU bude muset podporovat neregulérní pole, náhodné čtení a zápis, mnohonásobné vstupy, přímé vyvolání individuálních vláken podle potřeb programátora a spoustu dalších technologií.

Možnosti, které s tímto typem výpočtu přijdou, se ani nedají shrnout. Jedná se o volné pole a uvidí se, s čím přijdou a co vymyslí programátoři. Zatím se na světlo světa dostaly některé speciální efekty, které není možné klasicky realizovat. Zde mluvíme například o superkvalitním vyhlazování hran objektů nebo pokročilou průhlednost objektů, stínování, post-procesing efekty a jiné další techniky.

Ovšem ani zde možnosti DirectComputing nekončí. Je možné jej využít i v jiných oblasti než k renderingu. Jedná se zejména o možnosti ve využití v umělé inteligenci, technických, matematických a fyzických výpočtech a jiných úkolech, které se obvykle zadávají procesoru, ovšem tím, že budou zpracovány v grafice, budou samozřejmě taktéž rychleji pro grafiku dostupné. Laicky řečeno odpadne u některých výpočtů cesta po sběrnici do procesoru a nazpět. Dokonce se uvažuje i o současném zpracování dat na CPU i GPU.

Tesselátor a tesselace:

Tuto jednotku si možná mnozí pamatují, jelikož společnost ATI ji v jisté míře podobnosti montuje do svých GPU už od modelu R600. Zde se mu bohužel nedostalo žádného využití, jelikož trochu předběhl dobu. Nicméně tesselátor a tesselace je zpět v DX 11, takže pro ty, kdo by nevěděli, oč se jedná, musíme vysvětlit, jak takový tesselátor a telessace funguje.

Jedná se zjednodušeně o rozdělení trojúhelníku na menší trojúhelníčky nebo modifikované polygonální sítě dle potřeby programátora. Takže je možné vytvořit relativně reálnější model z velice jednoduchého modelu s velice malým dopadem na změnu celkové velikosti dat a výkonu.

POI

Tessalace je prozatím asi nejlepší možnost, kterak získat komplexní geometrii pro objekty ve hře bez těžkého dopadu na výkon, ovšem má i pár negativních vlastností. Jedná se zejména o to, že je to velice náročná operace, na kterou běžné jednotky nestačí a proto musí být na grafice speciální tessalační jednotky, které toto zvládnou. Ovšem když není využíváno tessalace, tak jsou tyto jednotky mrtvé. Moderní tessalační jednotka na jádře ATI RV870 s podporou DX 11 je plně programovatelná, takže u ní odpadá nevýhoda nevyužívání všech jednotek při nepoužití tesselace. Konkurenční architektura série G300 od společnosti NVIDIA zatím není známa.

POI

Kromě výše zmíněných hlavních novinek DirectX 11 také přichází update High Level Shader Language ne verzi 5.0. Což má za následek o mnoho větší přívětivost k vývojářům a na verzi 5.0 přidává podporu tříd a rozhraní.

Nadále přichází se všemi úpravami, taktéž s vyšší složitost sharderů, což bude mít za následek změnu v programování. Programátoři budou muset vytvořit jeden obrovský shader pro celou hru nebo opravdu velké množství miniaturních shaderů. To přinese obrovské nároky na spravování a bude nejspíše nutné zavést spravování na úrovni objektově orientovaného programování. Jen není nutné využívat paměťové konstrukce (pointery).

Jedna z posledních novinek je dynamické linkování shaderů, které pomůže programátorovi při práci s obrovským množstvím vizuálních efektů, jelikož dovoluje aplikaci rozhodnout se až při běhu, které shadery budou kompilovány a linkovány.

Poslední podstatnou změnou je podpora nového formátu textur, což má za následek opět přiblížení k realitě díky možnosti užít mnohem větší textury s nepatrným vlivem komprese na jejich kvalitu.

POI

V současné době známe již 3 hry, které jsou dostupné a mají již plnou podporu DirectX 11. Jedná se o:

Colin McRae DIRT 2

POI

BattleForge

POI

S.T.A.L.K.E.R.: Call of Pripyat.

POI

Navíc již jsou nahlášeny další, které vyjdou v následujících měsících. Zde se jedná o nový Alien vs. Predator, Battlefield: Bad Company 2, Crysis 2, Dungeons and Dragons Online, F1 2010, Genghis Khan – Treasure Hunter, The Lord of the Rings Online a Race Driver: Grid 2.

Zajímavé taky bude, jak se s touto novou verzí poperou grafické karty, jelikož ATI Mobility Radeon 5xxx pro notebooky jsou již venku s plnou podporou DirectX 11, NVIDIA se svým zbrusu novým řešením pro notebooky s označením 300M má pouze podporu DX 10.1, což by mohlo mít za následek propad oproti ATI. Je pravdou, že NVIDIA poslední dobou lehce zaspala a soustředila se na svou architekturu Fermi, tak uvidíme, jak to vše nakonec dopadne a který výrobce bude hrát prim.

Zatím by podle všeho měl DirectX 11 přinést opravdu spoustu nových technologií, které nás přiblíží ještě více realitě. První grafické karty s jeho podporou od společnosti ATI jsou již venku a dokonce první notebook s grafikou pro DirectX 11 vydá Acer každým dnem.

Technologie

Diskuse