Shadow mappingShadow mapping nebo shadow projection je technika používaná pro generování stínů v počítačové grafice. Uvedl ji Lance Williams roku 1978 v práci "Casting curved shadows on curved surfaces"[1]. Zda se nachází daný pixel ve stínu, nebo ne, se zjišťuje dle toho, zda je přímo viditelný z pozice světla. Princip metody![]() ![]() Když se díváme z pozice světla směrem, kterým světlo svítí, pak všechny plochy objektů, které vidíme, budou osvětlené, a všechny zakryté plochy zůstanou ve stínu. Tohoto faktu využívá metoda shadow mapping. Nejdříve je scéna vykreslena z pohledu světla a do textury se uloží hloubka každého pixelu z tohoto pohledu. Tyto hodnoty jsou zapsány do tzv. shadow mapy. Během finálního vykreslování scény je každý pixel nejdříve transformován do tzv. "light space" (stejný prostor, v kterém byla vykreslena shadow mapa), a zde je hloubka pixelu porovnána s hloubkou uloženou v shadow mapě. Metoda pak byla a je dále vylepšována. K jejím variantám patří: Dělení pohledového tělesaPro stíny vrhané slunečním svitem se často používají metody, jež rozdělují pohled pozorovatele na menší části. Tyto techniky umožňují lépe využít prostor v shadow mapě. Pokud bychom použili na celou hloubku scény jednu shadow mapu, budou její texely, které reprezentují prostor u pozorovatele, výsledně odpovídat většímu počtu pixelů na monitoru, než tomu budu u texelů, jež se použijí pro stínování vzdálenějších částí scény. Kaskádový shadow mappingKaskádové shadow mapy[2] byly představeny společností NVidia v roce 2007. Hlavní změnou v této metodě je, že před vykreslením shadow mapy je pohledové těleso rozděleno na několik částí dle hloubky, a následně je vykreslena shadow mapa pro každou část zvlášť. Až během finálního stínování scény se rozhodne, ve které kaskádě stínovaný fragment leží, a pak se použije příslušná shadow mapa. Paralel-split shadow mapsParalel-split shadow maps[3] řeší způsob, jakým je scéna dělena do jednotlivých kaskád shadow mapy. Pohledové těleso je rozděleno dle vhodné heuristiky. Ať už uniformně (celá hloubka je rozdělena pravidelně), logaritmicky nebo v jejich kombinaci, což se doporučuje. Sample distribution Shadow MapsSample distribution Shadow Maps[4] je technika, jež vylepšuje způsob, jakým je děleno pohledové těleso. K tomu používá informaci z předchozího z-bufferu. Nejdříve se analyzuje rozložení hloubek povrchů ve směru od kamery. Poté se pohledové těleso rozdělí pomocí logaritmické heuristiky. Tato technika si klade za cíl lepší využití prostoru v texturách shadow map. Například při běžném uniformním rozdělení scény dle hloubky se může stát, že z některé kaskády shadow map nebude nakonec využit žádný pixel. Toto se může stát v případech, kdy v těchto hloubkách není žádný objekt, který by bylo potřeba stínovat. OdkazyReferenceV tomto článku byl použit překlad textu z článku Shadow mapping na anglické Wikipedii.
Externí odkazy
|
Portal di Ensiklopedia Dunia