nVision 08: První pohled na DirectX 11
Na veletrhu nVision 08 ve slunném San Jose jsme dostali jedinečnou příležitost dozvědět se nemálo o nové generaci grafického API od Microsoftu. DirectX 11 přijde ve své zkušební podobě už tento podzim, finálně se jej dočkáme až s Windows Se7en, nicméně bude i pro Vistu.

Kevin Gee z Microsoftu se ujal vedení jedné z nejočekávanějších přednášek nVision 08. Nutno říct, že kadence jeho slov se blížila samopalu a také jednotlivé slajdy jsem občas nestihl ani pořádně vyfotit, natož o nich přemýšlet
Než vám "promítnu" všechny slajdy z prezentace Microsoftu na nVision, shrnu klíčové změny a přínosy DirectX 11 do několika bodů:
- teselace (zjednodušeně zjemnění trojúhelníkové sítě přímo na GPU) a s ní spjaté dva shadery:
- hull shader
- domain shader
- compute shader: GPGPU (využití GPU pro obecné výpočty) a aplikace včetně fyziky
- objektově orientované prvky v jazyku shaderů vyššího řádu (HLSL)
- výše uvedené dává dohromady shader model 5.0
- dva nové formáty komprese textur (jeden pro HDR s kompresí 6:1 a jeden bezztrátový pro LDR)
- prvky deferred renderingu (odloženého): malé display listy
Řetězec zpracování (pipeline) Direct3D se ve své jedenácté verzi změní opravdu hodně. Nejrozsáhlejší změny ve schématu vyvolalo přidání podpory teselace (tesselation). Jedná se o postup, který umožňuje měnit polygonovou šíť, v Direct3D 11 samozřejmě adaptivně a mnoha způsoby.
Za detailnějšími modely
Teselace není žádnou novinkou, řešila se už hodně dávno a dokonce i pro GPU se začaly vymýšlet postupy, jak mít detailnější modely objektů ve hrách někdy po roce 2000. nVidia měla svoje RT-patches, ATI se dostala dále s N-patches a technologií známou jako Truform (doba GeForce 3 a Radeonu 8500). Adaptivní teselace byla u GPU zkoušena jen o generaci později a první teselační jednotku v hardwaru jste mohli vidět u Radeonu HD 2900 XT (R600).
ATI ji má ve svých čipech dodnes a třeba s Radeony HD 4800 prezentovala své Froblins. Bohužel pro ni však podpora v API přichází až nyní a stejně se jedná o jinak pojaté schéma teselace. Na rozdíl od ATI ji Microsoft zařadil až za vertex shader, kromě teselároru přidal ještě dva další typy shaderů a na otázku ohledně shodnosti s řešením ATI nám Kevin Gee odpověděl, že se jednoznačně jedná o jinou implementaci.
Podstatné je, že vývojáři konečně budou mít snadný nástroj, jak vytvářet objekty se složitým reliéfem, všelijaké detailní pohledy na kůži žab či třeba pleť s akné. Microsoft dává pro teselaci opravdu hodně volitelných parametrů, trojúhelníkovou síť lze dále dělit mnoha algoritmy. Hull shader určuje parametry teselace pro teselátor, domain shader se pak postará o správné parametry pro displacement mapu.
GPGPU vs. CUDA
Ještě zajímavější je možná compute shader, tedy GPGPU přímo v API DirectX. Zdá se, že nVidia nechala na svém vizuálním veletrhu promluvit Jidáše, jelikož má svou CUDA a nad ní také PhysX pro fyziku ve hrách. Nutně tomu tak ale být nemusí, jelikož CUDA má velký časový náskok a dost možná je její nejsilnější zbraní v podstatě čisté C, kdežto GPGPU v DirectX bude používat asi nějaký rozšířený HLSL.
Microsoft vytvoří standard, který by měl být podporovaný všemi, nVidia na své straně (a to i u PhysX) asi bude mít už desítky či stovky aplikací (včetně PhysX her) a pravděpodobně taky vyšší uživatelskou přívětivost. Kevin Gee nám k tomu řekl, že očekává použití CUDA tam, kde tvůrce softwaru bude vědět, že se bude používat na jednotném a předem známém hardwaru, kdežto GPGPU DirectX použije ten, kdo bude chtít v produktu mít univerzálnost.
Něco pro vývojáře, něco pro každého
Programátoři ocení rozšíření jazyka shaderů vyššího řádu (HLSL) o prvky objektově orientovaných jazyků. Třídy a instance mají být lepším řešením než uber-shader ("one shader to rule them all"), tedy řešení, jež pomocí podmínek postihne všechna možná řešení. Tato rozšíření řeší hlavně narůstající složitost shader kódu dnešních moderních aplikací.
Microsoft modernizoval i formáty komprese textur, BC6 je přímo stavěna pro použití s HDR a i při kompresi 6:1 dává vysokou kvalitu. BC7 je pak zřejmě bezztrátová. Na jednom z posledních slajdů pak vidíte ještě stručný výčet dalších vylepšení v DirectX 11.
Microsoft dá SDK (Software Development Kit) ve své rané betaverzi k dispozici už v listopadu 2008 a budete jej moci zkoušet i na DirectX 10 hardwaru. Nevím vlastně, zda si DX 11 vyžádá vůbec nějaké změny v hardwaru, nebo se jedná jen o redefinici API a jiné využívání unifikovaných shader jednotek. V každém případě se na něj můžete těšit až s vydáním nových Windows, podpora pro něj bude ale doplněna i do Windows Vista.
Cnews.cz
Novinky
-
24.05.2012 - 16:54
-
24.05.2012 - 16:45
-
24.05.2012 - 08:00
-
24.05.2012 - 07:00
-
23.05.2012 - 14:00
-
23.05.2012 - 10:00
-
23.05.2012 - 00:00
-
22.05.2012 - 18:52
-
22.05.2012 - 11:14
-
22.05.2012 - 08:00
-
22.05.2012 - 07:00
-
21.05.2012 - 14:00
-
21.05.2012 - 11:06
-
21.05.2012 - 09:46
-
20.05.2012 - 17:11
-
18.05.2012 - 22:13
-
18.05.2012 - 18:30
-
18.05.2012 - 17:30
-
18.05.2012 - 11:47
-
17.05.2012 - 19:33
Diskuzní fórum
Tiskové zprávy
Oblíbené články
Nejčtenější články
Nejdiskutovanější články
Poslední komentáře
- Re: Horký den a potící se ruka? Zachrání vás myš s ventilátorem
32 min 3 sek zpět - Re: Intel Celeron G440: může mít dnes jednojádro smysl?
1 hodina 49 min zpět - Re: RunCore Xapear: autodestrukce dat na dálku pomocí SMS
7 hodin 18 min zpět - Re: Test Sapphire HD 7770 OC: rychlý, úsporný a tichý
7 hodin 30 min zpět - Re: Gigabyte GTX 680 Windforce 3X: 6+8 pinů pro lepší OC
7 hodin 1 min zpět - Re: RunCore Xapear: autodestrukce dat na dálku pomocí SMS
8 hodin 3 min zpět - Re: AMD to s Trinity zkusí i na průmyslovém trhu
8 hodin 10 min zpět - Re: AMD to s Trinity zkusí i na průmyslovém trhu
8 hodin 18 min zpět - Re: Minitest MSI Z77A-GD80: první deska s Thunderboltem
8 hodin 40 min zpět - Re: VIA APC: počítač pro systém Android za 50 dolarů
9 hodin 9 min zpět
















































Komentáře
Mne sa tak zda, ze nVidia
Mne sa tak zda, ze nVidia robi vsetko preto, aby nemusela vylepsovat architekturu/podporu novsich API. Tesselator mal byt uz v DX10, ale nv ukecala ms aby ju tam nedal, pretoze nv nebola schopna pridat tuto jednotku do cipu. nv a ms su asi velky kamarati..
DX11, aspon v obmedzenej podobe (bez nejakych efektov), bude fungovat na dx10 HW koli konzoliam, pretoze tie (sa mi zda) podporuju aspon ciastocne dx10. tak aby sa mohli vyvyjat nove hry pre konzole, tak musi byt nove api kompatibilne so starym HW.
Re: Mne sa tak zda, ze nVidia
Nevim podle mne to, ze DX11 podporuje HW DX10(10.1) neznamena, ze existujici HW DX10(10.1) poskytuje vse potrebne pro DX11.
Re: Mne sa tak zda, ze nVidia
vsak som napisal, ze asi vsetky efekty nebudu podporovane, ale zaklad na tom behat bude...
Re: Mne sa tak zda, ze nVidia
To co jsi napsal o konzolích je nesmysl. Playstation 3 běží na Linuxu, tam žádné Direct3D není, a na Xboxu 360 je možná něco podobného, ale taky to není D3D jako na Windows. Proto nelze s určitostí říct "Xenos je DX9 čip".
Re: Mne sa tak zda, ze nVidia
Mozna zaklad spolecny s DX10(10.1). ;-)
Zase se ted vyjasnuje proc asi ATI nekyvla na CUDA/PhysX. Ztrata tvare + ocekavane reseni fyziky v DX11 mohly byt dalsimi argumenty proti.
Re: Mne sa tak zda, ze nVidia
Je otázkou, jestli kývnutí na Havok není pro AMD/ATI mnohem větší ztráta tváře. Archsokovi museli kývnout tak jak tak a ještě nakonec nemají deklarované "Game physics capable" ve spojení s GPU Radeon HD 4800.
Re: Mne sa tak zda, ze nVidia
Ale ATI má HW "Game physics capable", však fyzika by se na jejich gk dala počítat, to že ale nic takového neexistuje už je vedlejší. Já vím, je to slovíčkaření, ale o tom přece marketing je a v tomto případě nelže ;)
Re: Mne sa tak zda, ze nVidia
To by si ale nVidia už při vydání GeForce 8800 GTX mohla napsat do materiálů, že může počítat Folding@home, co je vlastně na tom, že tenkrát pro GeForce neexistoval GPU klient?
Re: Mne sa tak zda, ze nVidia
To mi připomíná, když si kamarád koupil desku, na jejíž krabici bylo napsáno "HDMI ready". No a ready to bylo, ale konektor tam nebyl.
Re: Mne sa tak zda, ze nVidia
Ani redukce?
Re: Mne sa tak zda, ze nVidia
ee, na MB byl pouze D-Sub (tedy analog). Jednalo se o nějaký MSI lowend s AMD 690G. Ono by to člověka ani nevytočilo, kdyby ten nápis HDMI ready nebyl přes 1/4 té krabice, snad větší než nápis AMD 690G.
Re: Mne sa tak zda, ze nVidia
A co ten projekt umožňující "NV" fyziku na ATI jak se o něm měsíc či dva zpátky psalo a snad to i fungovalo? Celkem ticho po pěšině... že by někdo típnul nebohého vývojáře :)
Re: Mne sa tak zda, ze nVidia
Začíná to vypadat, že si z nás Regeneration udělal srandu. Momentálně se vymlouvá, že kvůli nějakým korporátním byrokratům musí odložit vydání...
http://www.ngohq.com/graphic-cards/14494-ati-physx-5.html
BC7
>BC6 je přímo stavěna pro použití s HDR a i při kompresi 6:1 dává vysokou kvalitu.
>BC7 je pak zřejmě bezztrátová.
BC7 je přímo stavěna pro použití s 8-bit LDR a i při kompresi 3:1 dává vysokou kvalitu.
BC7
Podle obrázků BC7 rozhodně bezztrátová není. Je to poznat podle slidů se srovnáním. Prostřední diff obrázek u BC7 není čistý, takže tam je rozdíl.
Re: BC7
jo, to jsem chtel ponekud zmatene naznacit, diky za upresneni
tesselator
No parada, na detailne zpracovane akne uz vsichni dlouho cekame :))
OT: vysvetlil by mi nekdo, jak cist "Se7ven"? to ma byt jako "SeSevenven"? :) Jsem jediny, komu 7cka ani vzdalene nepripomina pismeno "v"? O.o
Re: tesselator
To je jedna možná varianta. Případně to můžeme počeštit na "Windows Sesedumven". Dále by se to dle pravidel 1337-5p34ku mohlo číst jako "Windows Seten". Otočte sedmičku o 180° a máte "Windows Selen". A nebo zcela nelogicky, ale hezky to zní: "Windows Sexen".
Re: tesselator
zamestnanci microsoftu pri prezentacich vyslovuji "Se7en" normalne jako sedmicku - windows seven
mozna se inspirovali filmem "Se7en", ktery se venuje 7 tezkym hrichum (obzerstvi, lenost, ..) http://www.imdb.com/title/tt0114369/
jen si nejsem jist, zda jim inspiraci pri vyberu nazvu bylo zpracovani nebo tema filmu
v prvnim pripade se muzeme tesit na kvalitni system, v druhem pripade by slo o nenazrany, liny system k zlosti
DirectX je mrtvý
Na podobné akci jsem viděl rozsáhlý rozhovor s předním vývojářem her, jedním z autorů Unreal Enginů. Vyjádřil se v tom smyslu, že Direct X je sice skvělé API, ale tak do 5 let ho prý většina vývojářů stejně přestanou zcela používat, protože začnou hojně využívat vlastní přístup k HW. Tak jsem zvědav.
Re: DirectX je mrtvý
To já jsem zvědav taky, protože nevím, jak chtějí přistupovat ke každému HW přímo, když má nVidia, Ati, Intel jinou architekturu.
Ale třeba to jde a ukáže nám to brzo HYDRA 100 (vím, že s tímhle nesouvisí, ale taky bude nějak přistupovat k GPU a musí ho poznat a vědět, co umí a co mu může naložit za práci.)
Re: DirectX je mrtvý
Pravděpodobně to bude tím, že Všichni výrobci vydávájí nízkoúrovňové SDK (jako například CUDA nVidie) pomocí kterých se grafické karty dají programovat přímo. Takže oni možná obejdou nejen DirectX API, ale částečně možná i některé funkce ovladačů (jako třeba optimalizace, aplikační profily a podoně)
Re: DirectX je mrtvý
Právě že CUDA není zrovna nízkoúrovňová. To by spíš bylo CTM, kde můžeš udělat cokoliv, když si to ale taky sám napíšeš. A podívej se, kolik aplikací se vyvíjí pro CUDA a kolik pro CTM :)
Re: DirectX je mrtvý
Nevíš co hovoříš. Samozřejmě že CUDA je nízkoúrovńová. To že poskytuje i další možnosti na tom přece nic nezmění:
CUDA provides both deterministic low level API and a higher level API.
Re: DirectX je mrtvý
On to myslel dobře, CUDA se zažila jako C kompilátor. Možnost využívat přímo instrukční sadu je "bonus", na který se zapomíná.
Re: DirectX je mrtvý
No právě. A kolik lidí využívá C kompilátor a kolik nízkoúrovňový přístup?
Re: DirectX je mrtvý
Hrubým odhadem bych řekl, že to bude podobný poměr jako mezi počtem céčkačů a assembleristů ;-)
Mimochodem CUDA jsem ještě nezkoušel, ale to "nízkoúrovňové API" je nejspíš stejně dostupné jen jako inline assembler v C/C++ kódu.
Re: DirectX je mrtvý
pokud instrukcni sadou myslite PTX ISA, tak mozna
ovsem PTX kod je pred odeslanim na konkretni HW dale zpracovan JIT prekladacem (compiler) v CUDA driverech
dokumentace JIT prekladace je dostupna pouze pod NDA
Re: DirectX je mrtvý
Hm, že se to kompiluje dynamicky jsem nevěděl. Ale stejně to na věci nic nemění, ne? C/C++ kód se překládá do intrukcí PTX modelu (high level), ale je možnost instrukce vkládat podobně jako inline assembler (low level).
Samotný PTX model je tam proto, aby výsledný program fungoval na kartách s různými instrukčními sadami.
Jo a příště mi prosím tykej, připadám si pak hrozně staře ;-)
Re: DirectX je mrtvý
prispevek mel byt reakci na cele vlakno (proto ten plural)
jde o to, ze pokud pod "low level" u nVidia CUDA chapeme PTX, tak ATI CTM je jeste o level nize
PTX kod je jako nezavisly na architekture HW dale kompilovan CUDA driverem a nad tim co jde do GPU nemame primou kontrolu (zmena driveru muze mit vliv na vysledny kod)
CTM je svazany s danou architekturou HW a na GPU se posila primo (pro dany HW) zkompilovany kod nezavisly na jakekoliv dalsi sw vrstve
priamy pristup k HW
Nebolo by nelogicke, keby priamy pristup k HW (resp. ku driveru HW) v buducnosti zabezpecoval vyrobca herneho middleware (enginov). Ak sa v(dalekej buducnosti bude standardne pouzivat vylucne jedno dve riesenia, mohli by si dovolit MS DX obist a riesit veci po svojom.
Re: priamy pristup k HW
Nemyslím. Programátoři jsou líná pakáž a rádi si zjednoduší práci. Příklad z minulosti - DirectX vytlačilo nízkoúrovňové Glide. A to byl na herním trhu skoro monopol.