For faster navigation, this Iframe is preloading the Wikiwand page for Shadow mapping.

Shadow mapping

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"[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

[editovat | editovat zdroj]
Scéna zobrazená z pohledu světla.
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

[editovat | editovat zdroj]

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

[editovat | editovat zdroj]

Kaská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 maps

[editovat | editovat zdroj]

Paralel-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 Maps

[editovat | editovat zdroj]

Sample 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.

V tomto článku byl použit překlad textu z článku Shadow mapping na anglické Wikipedii.

  1. Lance Williams. Casting curved shadows on curved surfaces. cseweb.ucsd.edu. Dostupné online [cit. 2020-12-22]. DOI 10.1145/965139.807402. 
  2. Rouslan Dimitrov. Cascaded Shadow Maps. developer.download.nvidia.com. August 2007. Dostupné online [cit. 2020-12-23]. 
  3. Fan Zhang; HANQIU SUN; LEILEI XU; LEE KIT LUN. Parallel-split shadow maps for large-scale virtual environments. www.researchgate.net. January 2006. Dostupné online [cit. 2020-12-23]. DOI 10.1145/1128923.1128975. 
  4. Andrew Lauritzen; MARCO SALVI; AARON LEFOHN. Sample distribution Shadow Maps. www.researchgate.net. January 2011. Dostupné online [cit. 2020-12-23]. DOI 10.1145/1944745.1944761. 

Externí odkazy

[editovat | editovat zdroj]
{{bottomLinkPreText}} {{bottomLinkText}}
Shadow mapping
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?