Shadow 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".
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 náhled|vpravo|150px|Scéna zobrazená z pohledu světla. náhled|vpravo|150px|Shadow map.
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ělesa Pro 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 mapping Kaskádové shadow mapy 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 maps Paralel-split shadow maps ř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 Maps Sample distribution Shadow Maps 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.
Odkazy
Reference
Externí odkazy
Kategorie:Počítačová 3D grafika Kategorie:Algoritmy počítačové grafiky Kategorie:Anglická slova a fráze