Przyczyna trądziku cienia

10

Wiem, jak działa mapowanie cieni, ale nie dostaję przyczyny trądziku cienia! Czy ktoś może mi w prosty sposób wyjaśnić przyczynę trądziku cieniowego i jaki ma to związek z rozdzielczością mapy głębokości?

Ankit singh kushwah
źródło

Odpowiedzi:

10

wprowadź opis zdjęcia tutaj

Zdjęcie 1 : Zły przypadek trądziku cienia. (Syntetyczny i nieco przesadzony)

Trądzik cienia jest spowodowany dyskretną naturą mapy cienia. Mapa cienia składa się z próbek, powierzchnia jest ciągła. Zatem na powierzchni może znajdować się punkt, w którym dyskretna powierzchnia znajduje się dalej niż próbka. Problem nadal występuje, nawet jeśli próbkujesz wiele próbek, ale możesz próbować mądrzej w sposób, który może prawie wyeliminować to przy znacznych kosztach.

wprowadź opis zdjęcia tutaj

Zdjęcie 2: Boczne wycięcie funkcji cienia i jego dyskretne próbki.

Kanonicznym sposobem rozwiązania tego problemu jest lekkie przesunięcie mapy cienia, aby obiekt sam się nie zacieniał. To przesunięcie nazywane jest odchyleniem. Można zastosować więcej inteligentnych przesunięć niż tylko stałą wartość, ale stała wartość działa całkiem dobrze i ma minimalny narzut.

wprowadź opis zdjęcia tutaj

Zdjęcie 3: Funkcja cienia jest stronnicza (przesunięta) do przodu.

joojaa
źródło
Ta dyskretna natura mapy głębokości jest tworzona ze względu na precyzję zmiennoprzecinkową. Dobrze?
Ankit singh kushwah
1
Nie jest tworzony, ponieważ obrazy są dyskretne, ponieważ mają tylko jedną wartość dla obszaru, który się zmienia.
joojaa
Obrazy różnią się w kamerze i jasnej przestrzeni?
Ankit singh kushwah
Ok, czy linia zygzakowata przedstawia mapę głębokości?
Ankit singh kushwah
Reprezentuje funkcję mapy głębokości, linie przerywane reprezentują próbki pikseli mapy głębokości.
joojaa,
5

Jako dodatek do odpowiedzi joojaa: użycie odchylenia w celu zrównoważenia funkcji cienia rzeczywiście rozwiązuje problem z trądzikiem cieniowym, ale może wprowadzić dodatkowy problem: Peter Panning

Przykładowy obraz z Peterem Panningiem

Jak widać na zdjęciu po lewej, cień jest odłączony od ściany rzucającej cień. Daje to wrażenie, że geometria unosi się nad ziemią (tak jak Peter Pan może się unosić, stąd nazwa Peter Panning).

Aby rozwiązać ten problem, musisz użyć „grubej” geometrii, która ma objętość, a następnie renderować mapę cienia za pomocą tylnych ścian. Jeśli przesunięcie jest mniejsze niż grubość geometrii, nie będzie panoramowania Peter.

Scena o grubej geometrii, a tym samym bez Petera Panninga

Oba zdjęcia pochodzą z tego samouczka, w którym można również dowiedzieć się więcej o tym, jak działa mapowanie cieni, jak tworzy się i rozwiązuje trądzik w cieniu oraz czym jest Peter Panning.

Dragonseel
źródło
Można też być bardziej sprytnym i renderować mapy na średnich odległościach.
joojaa,
@ MartinBüttner Cóż, tak. To wydaje się rozsądnym powodem, aby tak to nazwać. W samouczku, o którym wspomniałem, wykorzystałem podane przeze mnie wyjaśnienie.
Dragonseel