Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Teksturowanie w grafice komputerowej

Podobne prezentacje


Prezentacja na temat: "Teksturowanie w grafice komputerowej"— Zapis prezentacji:

1 Teksturowanie w grafice komputerowej
Michał Radziszewski

2 Plan prezentacji Cel użycia tekstur Mapowanie tekstur
Filtrowanie – rekonstrukcja, prefiltrowanie Próbkowanie losowe HDRI Pełne widmo Kompresja tekstur Teksturowanie proceduralne

3 Cel użycia tekstur Poprawa jakości grafiki
Szczegółowe obrazy bez konieczności wykorzystania ogromnej ilości wielokątów Głównie kolor, ale nie tylko Niezależny kolor matowy i kolor połysku Siła połysku Przezroczystość Mapowanie nierówności / przemieszczeń I wiele innych

4 Tekstury – kolor

5 Tekstury – przezroczystość
© Plus3D

6 Mapowanie przemieszczeń
© William Donnelly

7 Mapowanie tekstur Podstawowy algorytm mapowania na płaskie wielokąty, historycznie – brak korekcji perspektywy Mapowanie ogólne – dwuwymiarowa powierzchnia musi być parametryzowalna Tekstury trójwymiarowe

8 Tekstury trójwymiarowe

9 Filtrowanie Rekonstrukcja – współrzędne teksturo-wanego punktu na ogół niecałkowite Należy zrekonstruować wartość tekstury w dowolnym punkcie Obrazy często nie są zapisami poprawnie (zgod-nie z tw. Shannona) próbkowanego sygnału Teoretycznie idealny filtr oparty o funkcję sinc może powodować ‘dzwonienie’

10 Filtrowanie – rekonstrukcja
Należy zrekonstruować wartość tekstury w dowolnym punkcie – cd. W praktyce używane są filtry gaussowskie albo wielomianowe, kompromis pomiędzy dzwonie-niem, rozmyciem a kosztem obliczeniowym

11 Filtrowanie – rekonstrukcja 1D
© Matt Pharr

12 Prefiltrowanie Nawet idealna rekonstrukcja nie zawsze jest skuteczna
Na skutek złożenia mapowania na wielokąt z mapowaniem na ekran rozdzielczość tekstury może ulec zmniejszeniu Prefiltrowanie – usunięcie z tekstury częstotliwości powodujących aliasing w ww. przypadku

13 Prefiltrowanie – cd. MIP mapy, trilinear filtering, anisotropic filtering © 3D Mark 2006

14 Prefiltrowanie – cd. © 3D Mark 2006

15 Prefiltrowanie – cd. © 3D Mark 2006

16 Prefiltrowanie – cd. © Extremetech

17 Próbkowanie losowe Stosowane wtedy, gdy nie można zastosować filtrowania analitycznego (np. map nierówności czy przeźroczystości) Zamienia aliasing na szum, który jest redukowany poprzez dużą ilość próbek Zastępuje tylko prefiltrowanie, dobry algorytm rekonstrukcji nadal jest konieczny Zawsze działa bezbłędnie, ale kosztowne obliczeniowo

18 Próbkowanie losowe – cd.
© Matt Pharr

19 HDRI High Dynamic Range Imaging
Konwencjonalne obrazy – format stałoprzecinkowy, na ogół 256 wartości Pełna precyzja – tylko dla wartości >128 Brak detali w cieniu HDRI – format zmiennoprzecinkowy Pełna precyzja niezależnie od jasności Na ogół 16 bitów, tzw. ‘half’

20 HDRI – cd. Znacznie lepszy kontrast przy zachowaniu detali na najjaśniejszych i najciemniejszych elementach Na zwykłym projektorze niestety nie można pokazać nic poza tym: © OpenEXR

21 Pełne widmo a RGB Model RGB nie ma żadnego uzasadnienia fizycznego – został zaprojektowany do wyświetlania i przechowywania obrazów biorąc pod uwagę fizjologię ludzkiego oka oraz charakterystyki monitorów Niestety rendering w oparciu o RGB w ogólnym przypadku nie jest poprawny

22 Pełne widmo – motywacja
Zniekształcanie kolorów – RGB poprawne tylko dla oświetlenia białego Zjawiska zależne od długości fali światła

23 Pełne widmo – motywacja

24 Pełne widmo – cd. Ale niemal wszystkie tekstury są w formacie RGB – konieczność konwersji Pełne widmo zawiera dużo więcej informa-cji, niż może przechować tekstura RGB Istnieją różne warianty takiej konwersji – każdy z nich jest ‘zgadywany’, nie da się powiedzieć który z nich jest lepszy

25 Pełne widmo – cd. Przykładowa konwersja
widma r(l), g(l), b(l), gdzie l – długość fali r(l) + g(l) + b(l) = 1, 0 ≤ x(l) ≤ 1 Wynik konwersji: s(l) = R*r(l) + G*g(l) + B*b(l)

26 Pełne widmo – cd. Wynikiem renderingu w oparciu o pełne widmo jest obraz nie dający się wyświetlić Konieczna jest konwersja powrotna do RGB, na ogół poprzez przestrzeń XYZ Konieczność mapowania zakresu jasności oraz kolorów nie reprezentowalnych w RGB Najlepszy format do przechowywania takich wyników – wariant HDR

27 Kompresja tekstur Tekstury o wysokiej rozdzielczości zajmują dużo pamięci Kompresja tekstur powoduje mniejszą utratę jakości niż zmniejszenie rozdzielczości Kompromis pomiędzy jakością tekstur, wymaganą mocą obliczeniową a zajętością pamięci

28 Kompresja tekstur – cd. Wymagania Kompresja bezstratna, np. PNG
Szybkie dekodowanie (kodowanie mniej istotne) Swobodny dostęp w przypadku śledzenia promieni (niekonieczny przy rasteryzacji) Kompresja bezstratna, np. PNG Dobra do grafiki tworzonej ręcznie, zrzutów ekranu, itp., ale nie nadaje się do kompresji zdjęć, będących często podstawą tekstur Brak swobodnego dostępu

29 Kompresja tekstur – cd. Kompresja stratna – np. JPG
Dobry (ok x) współczynnik kompresji dla zdjęć przy zachowaniu akceptowalnej jakości Utrata jakości objawia się poprzez rozmycie szczegółów i rozpad obrazu na bloki 8x8 albo 16x16, jednak rozpad można skorygować Kosztem niewielkiego (ok. 15% przy kompresji 10x) narzutu pamięciowego można uzyskać dostęp swobodny Niezbyt wydajna dekompresja

30 Kompresja tekstur – cd. Format specjalizowany – np. DXT
Kompresja stratna Jakość lepsza niż przy ograniczeniu rozdzielczości ale gorsza niż dla obrazów JPG Optymalizowany pod kątem kart graficznych Bardzo szybka dekompresja

31 Teksturowanie proceduralne
Zastosowanie programu do utworzenia tekstur Program wykonywany jest w trakcie renderingu Niemal brak zużycia pamięci Wymagana duża moc obliczeniowa

32 Teksturowanie proceduralne
© David Ebert

33 Teksturowanie proceduralne
color main { return blend( blend(color([ ]), color([ ]), noise(addr=8.0*$uv+16.0)* ), color([ ]), marble(addr=12.0*$uv, layers=[0.375, 0.375], amplitude=1.0, roughness=0.25, bright_dark=0.5, c_octaves=6 )) * blend( blend(color([ ]), color([ ]), noise(addr=8.0*$uv+48.0)* ), blend(color([ ]), color([ ]), noise(addr=8.0*$uv+128)* ), marble(addr=12.0*$uv+4.0, layers=[0.375, 0.375], amplitude=0.75, roughness=0.375, bright_dark=0.375, }

34 Teksturowanie proceduralne
Możliwość efektywnej kontroli nad parametrami tekstury Duża ilość szczegółów Olbrzymia różnorodność scen Nie zawsze łatwo da się zastosować np. twarz człowieka ściana z obrazem

35 Podsumowanie Właściwe użycie tekstur decyduje o jakości grafiki
Bardzo ważne jest odpowiednie filtrowanie tekstur Warto rozważyć stosowanie bardziej zaawansowanych formatów niż 24bit RGB Konieczność wyważenia zużycia pamięci i mocy obliczeniowej


Pobierz ppt "Teksturowanie w grafice komputerowej"

Podobne prezentacje


Reklamy Google