Diit.cz - Novinky a informace o hardware, software a internetu

Shadery v Larrabee

Intel čtyřjádro
Po mnoha a mnoha měsících spekulací a nepotvrzených informací konečně sama společnost Intel poodhalila roušku tajemství kolem projektu Larrabee, od kterého si ona i IT svět jako takový, slibuje poměrně hodně. Co je tedy Larrabee zač, co od něho můžeme očekávat a jaké to za rok-dva po jeho uvedení na trh bude?

Nyní je čas v renderovací cestě pokročit dál, a to k „Render Back-end“ částem, tedy místu, kde se z té hromady předpřipravených dat počítá a sestavuje to, co uživatel vidí na monitoru.

Nejprve jsou jednotlivé „dlaždice“ (části obrazu vzniklé rozdělením v duchu tile-based renderingu) nataženy do vyrovnávací paměti. Již zmiňované čtyři thready nad jedním výpočetním jádrem pracují na stejném souboru dat ve společné paměti, viz diagram.

Architektura Intel Larrabee: render back end

Na něm jsou vidět čtyři výpočetní vlákna, kde jedno pracuje jako setup, který vezme veškerou geometrii z přidělené dlaždice a vytvoří dílčí fragmenty pro další zpracování. Zbývající tři vlákna pak tyto fragmenty dostanou na svém vstupu (možná přebírají rovnou skupiny fragmentů po 4 až 16, opět jen dohad), zkontrolují jestli budou na výsledné scéně vidět (Early-Z), provedou shaderové operace (načtou textury a vykonají příslušející shaderové programy), provedou anti-aliasing a alpha blending.

Na tento postup se zatím dá pouze usuzovat ze střípků dostupných informací. Jakmile přijde Larrabee na trh, tak si budeme moci toto vše buď potvrdit, nebo vyvrátit a vůbec nejlépe by se to dělalo, kdyby Intel skutečně uvolnil zdrojový kód softwarového rendereru.

Díky tomu, že nejde o hardwarovou implementaci s pevně danými funkcemi, může Larrabe nepoužívat klasický alpha blending a místo něj využít layered transparency za přispění seznamu fragmentů uchovávaného spolu s informací o Z souřadnici.

Architektura Intel Larrabee: irregular Z buffer

Navíc lze počítat s Irregular Z-buffers (nepravidelně rozložené Z buffery, které lze využít pro lepší shadow mapy a vyhnout se tak artefaktům v renderované scéně) a dalšími komplexními datovými strukturami, které mohou být na Larrabee implementovány, zatímco klasická GPU toto jednoduše nemohou nabídnout. Klíčové bude, zdali toto začnou vývojáři využívat. I zde jim Larrabee poskytuje plnou volnost při psaní kódu a mohou tak implementovat prakticky jakoukoli metodu, kterou si vymyslí.

Vědci Katedry počítačových věd a University of Texas a Texas Advanced Computing Center k tomu říkají následující: Jednou ze základních úloh v 3D grafice je problém viditelných povrchů, problém efektivního nalezení prvního bodu mezi paprskem a souborem povrchů. Tento problém se typicky řeší (počítá) buď pomocí Z-buffer algoritmů, nebo raytracingem (oboje jsou metody popsané před více než 30 lety). Téměř veškeré moderní grafické systémy používají Z-buffer implementovaný specializovaným hardware. Algoritmy pro realtime rendering jsou pevně spjaty s grafickou architekturou, na níž jsou implementovány a organizace této architektury se za posledních 15 let téměř nezměnila. Výsledkem je, že Z-buffery nadále přetrvávají navzdory zkušenostem, dle kterých lze použít daleko efektivnější algoritmy produkující vyšší kvalitu obrazu, pokud budou implementovány v dostatečně výkonné formě. Irregular Z-buffery proskytují něco z flexibility raytracingu (mimochodem v souvislosti s Larrabbe se vám přece musí raytracing honit hlavou celou dobu, co tento článek čtete) za současně výborného zachování výkonu charakteristického pro klasické Z-buffery. Irregular Z-buffery řeší problém viditelných povrchů, sdílení paprsků, jednotného zdroje a různých směrů. V podstatě jsou univerzálnější než klasické Z-buffery, kde směr paprsku musí následovat daný vzor. Nejsou však tak univerzální jako samotný raytracing, kde jak směr paprsku, tak jeho původ jsou zcela nezávislé a mohou tak sloužit k otestování viditelnosti libovolného bodu scény z libovolného jiného bodu scény.

Ale v tu chvíli opět musíme zmínit riziko nedodržení zpětné kompatibility. K čemu vám bude skvělý, takřka dokonalý kód, když jej dokáže spočítat pouze jedna grafika, která je navíc na trhu pouze velmi krátce, zatímco obě zaběhlá konkurenční řešení to neumí a nechat to v takových případech počítat klasickým CPU nelze, protože na to není dost rychlé? Herní vývoj je svázán léty tradice a proti takovým překážkám se bojuje těžko (zejména třeba u her, které jsou současně kompilovány pro Windows i Xbox 360).

David "David Ježek" Ježek

Bývalý zdejší redaktor (2005-2017), nyní diskusní rejpal.

více článků, blogů a informací o autorovi

Diskuse ke článku Architektura Intel Larrabee

Čtvrtek, 14 Srpen 2008 - 14:52 | Ren1 | ...
Čtvrtek, 14 Srpen 2008 - 14:39 | Anonym | Proc myslis, ze si myslim, ze me kazdy chce...
Čtvrtek, 14 Srpen 2008 - 13:59 | Ren1 | weepy> Ale no tak..:-( Myslis, ze bys...
Středa, 13 Srpen 2008 - 19:10 | Anonym | Ren: Prostredky, kterych pouzivas, se nelisi od...
Středa, 13 Srpen 2008 - 13:19 | Ren1 | weepy> Hehe, zase ta neurcita cestina...
Středa, 13 Srpen 2008 - 13:17 | Ren1 | weepy> Tak pocitam, ze uz bylo po debate,...
Středa, 13 Srpen 2008 - 11:06 | Anonym | Vsimas si, ze ses timto vlozil sam do diskuse,...
Středa, 13 Srpen 2008 - 09:51 | Ren1 | weepy> Urcite nic, co bys sam davno...
Úterý, 12 Srpen 2008 - 14:58 | Anonym | Ren: no tak flame uz je sociologicky prostudovany...
Úterý, 12 Srpen 2008 - 14:44 | Ren1 | weepy, Milan M> Panove, vasi debatu jsem...

Zobrazit diskusi