Transparentnost nezávislá na objednávce - Order-independent transparency

Důležitost pořadí míchání. Horní část produkuje nesprávný výsledek s neuspořádaným alfa prolnutím, zatímco spodní správně seřadí geometrii. Dbejte na nižší viditelnost skeletové konstrukce bez správného uspořádání hloubky. Obrázek z ATI Mecha Demo

Order-independent transparent (OIT) je třída technik v rasterizační počítačové grafice pro vykreslování průhlednosti ve 3D scéně, které nevyžadují geometrii vykreslování v seřazeném pořadí pro alfa skládání .

Popis

Běžně se 3D geometrie s průhledností vykresluje smícháním (pomocí alfa skládání ) všech povrchů do jedné vyrovnávací paměti (považujte to za plátno). Každý povrch uzavírá existující barvu a přidává část své vlastní barvy v závislosti na hodnotě alfa , poměru propustnosti světla . Pořadí, ve kterém jsou povrchy smíchány, ovlivňuje celkovou okluzi nebo viditelnost každého povrchu. Pro správný výsledek musí být povrchy smíchány od nejvzdálenější k nejbližší nebo nejblíže k nejvzdálenější, v závislosti na operaci skládání alfa , nad nebo pod . Řazení lze dosáhnout vykreslením geometrie v seřazeném pořadí, například třídění trojúhelníků podle hloubky, ale může to trvat značně dlouho, ne vždy vytvořit řešení (v případě protínající se nebo kruhově se překrývající geometrie) a implementace je složitá. Místo toho transparentnost nezávislá na pořadí třídí geometrii na pixel po rasterizaci. Pro přesné výsledky to vyžaduje uložení všech fragmentů před tříděním a složením.

Dějiny

A-pufr je počítačová grafika technika zaveden v roce 1984, který ukládá na pixel seznamy fragmentu dat (včetně mikro-polygonu informací) v softwarovém rasteriser, Reyes , původně určených pro vyhlazování , ale také podporuje transparentnost.

V poslední době popsal hloubkový peeling v roce 2001 hardwarově akcelerovanou techniku ​​OIT. S omezeními v grafickém hardwaru musela být geometrie scény mnohokrát vykreslena. Následovala řada technik, jejichž cílem je zlepšit výkon hloubkového loupání, stále s omezením vykreslování více průchodů. Například Dual Depth Peeling (2008).

V roce 2009 byly v GPU hardware / ovladače / Graphics API zavedeny dvě významné funkce, které umožňovaly zachycení a uložení fragmentových dat v jediném vykreslovacím průchodu scény, což dříve nebylo možné. Jedná se o schopnost zapisovat do libovolné paměti GPU ze shaderů a atomových operací. S těmito funkcemi byla možná nová třída OIT technik, které nevyžadují mnoho vykreslovacích průchodů geometrie scény.

  • Prvním bylo ukládání fragmentových dat do 3D pole, kde jsou fragmenty uloženy podél dimenze z pro každý pixel x / y . V praxi je většina 3D pole nevyužita nebo přetéká, protože hloubka složitosti scény je obvykle nerovnoměrná. Aby se zabránilo přetečení, 3D pole vyžaduje velké množství paměti, což je v mnoha případech nepraktické.
  • Existují dva přístupy ke snížení této režie paměti.
    1. Zabalení 3D pole skenováním součtu předpon nebo linearizací odstranilo problém s nevyužitou pamětí, ale vyžaduje další propustnost výpočtu hloubky složitosti pro vykreslení geometrie. Tyto "řídkost vědomi" S-Buffer, Dynamic fragment Buffer, "deque" D-Buffer, Linearizovaná Layered fragment Buffer všechna data balení fragment s scan prefix součet a jsou demonstrovány s OIT.
    2. Ukládání fragmentů do seznamů propojených na jednotlivé pixely zajišťuje těsné zabalení těchto dat a na konci roku 2011 vylepšení ovladačů snížila režii sporu o atomovou operaci, díky čemuž byla tato technika velmi konkurenceschopná.

Přesný OIT

Přesně, na rozdíl od aproximace , OIT přesně vypočítá konečnou barvu, pro kterou musí být všechny fragmenty tříděny. U scén s vysokou hloubkou složitosti se třídění stává překážkou.

Jedním problémem ve fázi třídění je omezená obsazenost lokální paměti , v tomto případě atribut SIMT týkající se skrývání propustnosti a latence provozu GPU. Zpětná alokace paměti (BMA) seskupuje pixely podle jejich hloubkové složitosti a třídí je v dávkách, aby se zlepšila obsazenost a tím i výkon pixelů se složitostí s nízkou hloubkou v kontextu potenciálně složité scény s vysokou hloubkou. Je hlášeno až 3 × celkové zvýšení výkonu OIT.

Třídění se obvykle provádí v místním poli, ale výkon lze dále zlepšit využitím hierarchie paměti GPU a třídění v registrech, podobně jako u externího sloučení , zejména ve spojení s BMA.

Přibližný OIT

Přibližné techniky OIT uvolňují omezení přesného vykreslování a poskytují tak rychlejší výsledky. Vyššího výkonu lze dosáhnout tím, že nemusíte ukládat všechny fragmenty nebo jen částečně třídíte geometrii. Řada technik také komprimuje nebo snižuje fragmentovaná data. Tyto zahrnují:

  • Stochastická transparentnost: čerpat ve vyšším rozlišení v plné neprůhlednosti, ale některé fragmenty zahodit. Převzorkování poté přinese transparentnost.
  • Adaptive Transparency, dvouprůchodová technika, kdy první vytváří funkci viditelnosti, která se komprimuje za běhu (tato komprese se vyhne nutnosti úplného třídění fragmentů) a druhá používá tato data ke sloučení neuspořádaných fragmentů. Synchronizace pixelů Intel eliminuje potřebu ukládat všechny fragmenty a odstraňuje požadavky na neomezenou paměť mnoha dalších technik OIT.

OIT v hardwaru

Viz také

Reference