Podręcznik
7. Odwzorowywanie tekstur
Odwzorowanie tekstury może służyć do modyfikacji pewnych właściwości obiektu, takich jak:
- Kolor powierzchni
- Wektor normalny powierzchni
- Współczynnik połysku powierzchni
- Współczynnik przezroczystości
- Cienie, przesunięcie powierzchni
- Lokalne układy współrzędnych
Współrzędne tekstury są w takich przypadkach związane ze współrzędnymi obiektu.
Tekstura może byc też wykorzystywana do opisu oświetlenia sceny. Nie jest wówczas związana z żadnym obiektem sceny, ale z umowną sferą o nieskończonym promieniu, w której centrum znajduje się scena. Ten rodzaj tekstury nazywany jest odwzorowaniem środowiska.
Przy wykorzystywaniu tekstur w systemach komputerowej generacji obrazu pojawiają się następujące problemy, które dalej zostaną omówione:
- Problem generowania wzorca tekstury
- Problem odwzorowania geometrycznego tekstury
- Problem filtrowania tekstury
Istnieją dwa sposoby opisu tekstury w systemach komputerowej generacji obrazu, tzn.:
proceduralny - w postaci funkcji matematycznej lub zestawu parametrów dla określonej klasy funkcji
jawny - w postaci tablicy wartości funkcji tekstury
Szeroko rozpowszechnionymi klasami funkcji stosowanymi do proceduralnego generowania tekstur są szeregi fal sinusoidalnych, funkcje fraktalne czy procesy stochastyczne. Każda funkcja opisana proceduralnie może być stablicowana dla określonej części dziedziny funkcji i z określoną precyzją (tzw. gęstością próbek).
Po wygenerowaniu tekstury powstaje problem jej poprawnego odwzorowania na obraz obiektu na ekranie. W procesie odwzorowania tekstury na obraz obiektu możemy wyróżnić dwa etapy:
Parametryzację - etap polegający na określeniu przekształcenia przestrzeni tekstury w przestrzeń obiektu
Projekcję - etap polegający na odwzorowaniu obiektów na przestrzeń ekranu
Powszechnie stosowane odwzorowanie przestrzeni tekstury 2D na powierzchnię obiektu wykonywane jest najczęściej zgodnie ze schematem:
Rysunek 48. Odwzorowanie tekstury od piksela do mapy (tablicy) tekstury
Przeglądanie w przestrzeni ekranu, nazywane także odwzorowaniem odwrotnym, jest najczęściej stosowaną metodą, w której dla każdego piksela w przestrzeni ekranu jest wyznaczany jego obraz źródłowy w przestrzeni tekstury. Jest on następnie filtrowany dając wartość tekstury dla danego piksela. Przy stosowaniu tej metody wymaga się znajomości odwzorowania odwrotnego, tzn. z przestrzeni ekranu do przestrzeni tekstury, niezbędnego do wyznaczenia obrazu źródłowego piksela. Ponadto niezbędny jest bezpośredni dostęp do tablicy tekstury.
Odwzorowanie odwrotne można również wykonać na etapie parametryzacji, przechodząc z przestrzeni tekstury do przestrzeni obiektu.
Rys. 11.7. Tablica opisująca teksturę, złożona z tzw. tekseli (elementów tekstury) o współrzędnych (s,t)
Ten rodzaj odwzorowania, powszechnie znany pod nazwą "bump mapping" jest szczególnie efektowny, a zarazem bardzo prosty od strony algorytmicznej. Efekt pofałdowań na powierzchni uzyskuje się wyłącznie poprzez zaburzenia wersora normalnego do powierzchni - wynikająca stąd zmiana odbicia rozproszonego i ew. lustrzanego wystarcza do uzyskania wrażenia wklęsłych i wypukłych miejsc na powierzchni.
Rysunek 49. Zasada symulowania wypukłości na płaskiej powierzchni
Dla powierzchni
Po wyznaczeniu wektora normalnego dla tak zaburzonej powierzchni i pominięciu mało znaczących członów otrzymuje się prostą zależność:
Funkcją zaburzającą
Rysunek 50. Odwzorowywanie wypukłości na powierzchni kuli.