GKIW Moduł 10

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania


Tekstury

Nakładanie tekstury jest jednym z najważniejszych zadań grafiki realistycznej. Pozwala zwiększyć stopień realizmu generowanych obrazów, dodając pewne cechy obiektom, które bez tego wyglądałyby nienaturalnie. Jednocześnie ponieważ jest to nakładanie – odwzorowanie obrazu na powierzchni materiału, to jest to technika szybsza i efektywniejsza niż realizacja rzeczywistego definiowania właściwości powierzchni obiektu.

Przedstawione zastosowania pokazują możliwości jakie daje tekstura. Nie jest to tylko nałożenie obrazu – zdjęcia, ale może to być także zmiana pewnych postrzeganych właściwości materiałowych. Możliwa jest także zmiana pewnych cech związanych z otoczeniem – tekstura jest także stosowana do przyspieszenia lub uproszczenia wyznaczania oświetlenia.

W tym zestawieniu warto wyróżnić trzy kategorie odwzorowania.

  • Odwzorowanie wzoru – przeniesienie mapy barw (np. zdjęcia) na powierzchnię. Od takiej realizacji oczekujemy tylko, aby nałożona mapa była związana z obiektem.
  • Odwzorowanie cech zależnych od obserwatora. W tym przypadku dodatkowo tekstura powinna zachowywać właściwości zależne od pewnych kierunków związanych ze sceną (np. położenie źródeł światła) i kierunków związanych z obiektem (np. anizotropia).
  • Odwzorowanie zmieniające geometrię powierzchni materiału. Oczywiście zmiana może być w tym przypadku pozorna (np. przy zastosowaniu mapowania nierówności) ale realizacja powoduje powstanie wrażenia zgodnego z oczekiwaniem.

Jak widać nakładanie tekstury może obejmować szeroki zestaw zagadnień. Formalnie należałoby więc definiować teksturę jako pewną wektorowa funkcje wielu zmiennych. Liczba zmiennych jest zależna od właściwości odwzorowania.


Podstawowe problemy stosowania tekstur

Pierwszym problemem jaki pojawia się przy odwzorowaniu tekstur jest pozyskiwanie tekstur. Znane są „banki” tekstur w Internecie zawierające wzory o różnej rozdzielczości i jakości (a także różnej cenie). Można także pokazać metody generowania wzorów.

Odwzorowanie geometryczne jest operacją, która musi zapewnić możliwość nałożenia wzorca na powierzchnię, w taki sposób żeby nie stracić jakości wzorca.

Bezpośrednio z nakładaniem tekstury, a także z rzutowaniem perspektywicznym są związane problemy próbkowania, powodujące, że trudno jest w prosty sposób uzyskać zawsze dobrą jakość odwzorowanej tekstury mimo posiadania znakomitych wzorców. Problem ten można rozwiązać stosując filtrowanie tekstur.


Rodzaje tekstur

Tekstury dwuwymiarowe w postaci prostokątnego wzoru są najczęściej spotykane. Również właściwości trójwymiarowe materiałów spotykane są w postaci zestawów dwuwymiarowych wzorców – na przykład przecięć pod różnymi kątami.


Generowanie tekstur I

Opis proceduralny pozwala generować tekstury za pomocą odpowiednio dobranych funkcji matematycznych lub zestawu parametrów dla wybranej klasy funkcji. Tablicowanie parametrów tekstury daje gotowy zestaw wartości dla realizacji obrazowania. Stosując opis proceduralny można dostosować wybrany podzbiór dziedziny dla konkretnego rozwiązania. Jest to bardzo istotne, gdyż gęstość próbkowania daje z jednej strony określony poziom szczegółów, a z drugiej strony zapewnia możliwość minimalizacji zniekształceń związanych z nakładaniem próbkowanego obrazu. Parametry tablicowane są realizacją funkcyjną dla określonej gęstości próbkowania. Ponieważ parametr ten nie może być zmieniany w trakcie odwzorowania, stosuje się zestawy takiej samej tekstury tablicowane dla różnej gęstości próbkowania.

Niezależny podział wyróżnia generowanie deterministyczne i stochastyczne. Deterministyczne, w którym istnieją reguły rozmieszczania wzorca tekstury na powierzchni materiału. Generowanie stochastyczne nie zapewnia informacji o ustalonej strukturze wzorca. Pozwala natomiast na tworzenie lokalnych zmian parametru (np. barwy) powierzchni wynikających z pewnego prawdopodobieństwa.

Często zachodzi potrzeba łączenia różnych technik aby uzyskany efekt jak najlepiej odpowiadał rzeczywistości. Przykładem może być generowanie trójwymiarowej tekstury słojów drewna. Można to zrobić przyjmując opis proceduralny deterministyczny opierając się na modelu zawierającym koncentrycznie umieszczone walce. Średnicę walca zmienia się dodatkowo przez deterministyczne zaburzenie w postaci harmonicznych. Ale aby zwiększyć podobieństwo do rzeczywistego obiektu dodaje się niewielkie zaburzenia stochastyczne zarówno do średnicy walców i położenia ich osi obrotu, jak również do barwy słojów.


Generowanie tekstur II

Modele deterministyczne można podzielić na cztery grupy.:

Modele okresowe, w których wzorzec jest nakładany na przestrzeń tekstury w ramach siatki. Okna siatki odpowiadają rozmiarom wzorca. Wzorzec może być powielony na wszystkie okna siatki lub tylko na ich część. Źródłem wzorca mogą być obiekty naturalne (skanowane, fotografowane) lub wygenerowane obrazy (edytory graficzne itp.).

W modelach o losowym rozmieszczeniu na powierzchni przestrzeni tekstury pojawiają się losowo rozmieszczone elementy (tzw. „bomby”) o określonej barwie i kształcie.

Modele mozaikowe są generowane bezpośrednio w przestrzeni tekstury w postaci rozrastających się, losowo ułożonych komórek. Każda z nich rozrasta się, aż do napotkania innej komórki.

Modele syntaktyczne generowane są bezpośrednio w przestrzeni tekstury z wykorzystaniem języków formalnych i reguł gramatycznych.


Odwzorowanie tekstur

Parametryzacja w przestrzeni obiektu zakłada, że obiekty są generowane w swoich własnych układach współrzędnych. Odwzorowanie tekstury jest opisem przekształcenia układu współrzędnych obiektu na układ współrzędnych tekstury. Takie odwzorowanie jest nazywane przekształceniem prosty.

Ten typ parametryzacji jest najwygodniejszy do stosowania w metodzie śledzenia promieni.

Parametryzacja w przestrzeni świata określa odwzorowanie przestrzeni tekstury na przestrzeń świata. Jest to nazywane często przekształceniem odwrotnym.

Projekcja jest przekształceniem przestrzeni obiektu na przestrzeń ekranu (rzutu). Ponieważ najczęściej w rzutowaniu jest wykorzystywane rzutowanie perspektywiczne więc również projekcja tekstury jest realizowana w postaci przekształcenia perspektywicznego.