Nowoczesne techniki renderowania cieni?

16

Jaki jest stan techniki w zakresie renderowania cieni? Moim celem jest OpenGL 3.2, jeśli to ma znaczenie, używając odroczonego procesu renderowania.

Minęły lata, odkąd przyjrzałem się renderowaniu cieni, a wtedy dostępnych było wiele technik, od szablonów po różne metody mapowania cieni. W tym czasie cienie renderowania wymagały osobnych przejść renderowania, kontrolowanych przez procesor. Ale ostatnio widziałem demo, w którym scena została całkowicie renderowana na GPU, w tym cienie. Nie mam pojęcia, jak by to osiągnąć, ani czy jest to rozsądne (poza pokazem technicznym).

Biorąc pod uwagę dużą liczbę starych informacji w Internecie, chciałbym dowiedzieć się, jakich metod używają ludzie w dzisiejszych czasach i jak wiele z nich można przekazać do GPU (zakładając, że moja docelowa wersja OpenGL je obsługuje).

Nairou
źródło
1
Dopóki RoyT nie przyjedzie tutaj, by zaoferować ekspertyzę, zostawię ten link na jego blogu. roy-t.nl/index.php/2013/04/12/…
Seth Battin

Odpowiedzi:

10

http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/ daje ładny przegląd podstaw. http://en.wikipedia.org/wiki/Shadow_mapping prowadzi do wielu artykułów naukowych opisujących różne ulepszenia i optymalizacje.

Kilka lat temu „cień” był „czymś”. http://en.wikipedia.org/wiki/Shadow_volume ładnie opisuje tę technikę.

Ostatnio metody oparte na śledzeniu promieni i ścieżce zostały wykorzystane do błyskawic / cieniowania (które były już wcześniej, ale nie sprzęt do ich wykorzystania). Chociaż zastosowane optymalizacje (np. Renderowanie Monte Carlo z ograniczonymi iteracjami) zwykle prowadzą do szumu / artefaktów podczas ruchu kamery (przykład efektu, patrz np. Http://www.youtube.com/watch?v=FJLy- ci-RyY ).

Exilyth
źródło