Mapowanie paralaksy

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Trawa odwzorowana metodą Iterative Parallax Mapping

Mapowanie paralaksy (ang. Parallax Mapping) jest to technika wizualizacji wybojów na powierzchni obiektów 3D, przez odwzorowanie paralaksy tych wybojów widocznej podczas ich obserwacji pod kątem. Paralaksę odwzorowuje się przez przesunięcie tekstur obiektu.

Mapowanie paralaksy wykorzystuje mapę wysokości, czyli teksturę z zapisanymi wysokościami poszczególnych punktów. Klasyczne mapowanie paralaksy polega na odczytaniu wysokości h w punkcie tekstury, po czym znajduje się przesunięcie zgodnie ze wzorem:

\vec{p}=SCALE * h * \vec{e} + BIAS

, i jest to przesunięcie na teksturze z obserwowanego punktu w kierunku obserwatora (kamery). SCALE i BIAS to stałe, a \vec{e} to znormalizowany wektor kierunku obserwacji wyrażony we współrzędnych przestrzeni stycznej, czyli powiązanych z teksturą.

Ponieważ ta technika zakłada, że wysokość nie zmieni się od punktu obserwowanego do punktu widocznego (wynikającego z przesunięcia), daje ona poprawne efekty tylko gdy rozmiary wybojów są wystarczająco duże. Małe, a wysokie wyboje będą generować zakłócenia obrazu. W tej technice nie widać też zasłaniania jednych wybojów przez drugie i nie jest możliwe rzucanie przez nie cieni, dlatego cieniowanie uzyskuje się poprzez mapowanie normalnych.

Rozwinięcia metody[edytuj | edytuj kod]

Uogólnienie mapowania paralaksy na przypadek wysokich a wąskich wybojów, które zapewnia też właściwe cieniowanie, zostało wypracowane w technikach znanych jako "relief mapping", "parallax occlusion mapping", "steep parallax mapping" i "iterative parallax mapping". Trzy pierwsze śledzą promień od obserwatora począwszy od miejsca gdzie wchodzi on do bryły, aż do dna mapy wysokości (umieszczonej pod powierzchnią bryły dla uniknięcia obcinania brzegów) i szukają punktu przecięcia. Różnią się sposobem wyszukiwania i wyglądem otrzymanych cieni. Ostatnia uzupełnia klasyczny parallax mapping o wykorzystanie normalnej - w punkcie gdzie pobiera się wysokość sprawdza się również normalną i wyznacza styczną - przecięcie tej stycznej z powierzchnią bryły wyznacza punkt widoczny. Kolejne iteracje startują z tak obliczonego punktu, znajdując coraz bliższe obserwatorowi punkty widoczne. Domyślna (opublikowana) implementacja nie obsługuje cieniowania.

Mapowanie paralaksy którąkolwiek z tych metod zachowuje oryginalną sylwetkę (kształt widoczny pod światło) obiektu powodując, że efekt zanika na brzegach. Istnieje rozwinięcie mapowania paralaksy o modyfikację sylwetek (Policarpo[potrzebne źródło],). Dodatkowo, jedynym źródłem informacji o wybojach jest mapa wysokości, która uniemożliwia wyświetlanie spodu (spód jest powierzchnią równoległą do powierzchni obiektu). Opracowano więc technikę odwzorowania kilku powiązanych map wysokości, która zapewnia m.in. wizualizację ażurowych przedmiotów.

Bibliografia[edytuj | edytuj kod]

  • Detailed Shape Representation with Parallax Mapping, Kaneko et al., 2001
  • Dynamic Parallax Occlusion Mapping with Approximate Soft Shadows, Tatarchuk, 2006
  • Iterative Parallax Mapping with Slope Information, Premecz, 2006
  • Relief Mapping of Non-Height-Field Surface Details, Policarpo, Oliveira, 2006
  • Steep Parallax Mapping, McGuire, 2005