Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu Mirosław Głowacki
Rendering Na przygotowane w fazie operacji geometrycznych złożone z trójkątów szkieletowe bryły akcelerator nakłada wypełnienie pustych przestrzeni wewnątrz wielokątów oraz symuluje światła padające na wielokąty Ten kolejny ciąg operacji w strumieniu graficznym 3D nosi nazwę renderingu
Rendering Rendering można podzielić na trzy główne procesy: teksturowanie oświetlanie i cieniowanie dodawanie efektów specjalnych
Teksturowanie Najważniejszym i najbardziej skomplikowanym etapem renderingu jest teksturowanie Zabieg ten polega na nakładaniu na trójwymiarowy szkielet płaskich obrazków nazywanych teksturami mających imitować spotykane w realnym świecie powierzchnie. Bogatym źródłem tekstur jest strona internetowa: https://www.textures.com/
Mapowanie tekstur Cały proces mapowania (nakładania) tekstur sprowadza się do odpowiedniego owijania brył teksturami. Problem polega na tym, iż wszystkie elementy trójwymiarowej sceny składają się z trójkątów o różnych rozmiarach. Tekstury należy więc dopasować do wielkości odpowiadającej poszczególnych trójkątów. Proces ten nazywa się wycinaniem (ang. clipping)
Wycinanie (clipping) Polega on na wyodrębnieniu trójkąta o żądanej wielkości z kwadratowej zazwyczaj tekstury W tym celu określane są współrzędne trzech punktów na teksturze, a następnie przyporządkowuje się je stosownym wierzchołkom teksturowanego trójkąta
Wycinanie (clipping) Kolejna operacja polega na nadawaniu pikselom trójkątów atrybutów odpowiadających ich położeniem atrybutów tekseli, czyli najmniejszych elementów tekstury.
Teksturowanie MIP mapping Próbkowanie punktowe Filtrowanie Korekcja perspektywy Mapowanie wybojów Alpha-blending
Teksturowanie - MIP mapping Ponieważ z pierwotnych tekstur, które mają ściśle określony rozmiar, np. 8 8 lub 64 64 piksele, prawie nigdy nie da się wyciąć odpowiedniego trójkąta ze względu na: rozmiar samego trójkąta, dopasowanie obrazu tekstury do położenia trójkąta w mapowanej przestrzeni Mając to na uwadze oraz aby zapobiec ciągłemu przeskalowywaniu tekstur opracowano mechanizm MIP mappingu (Multum in Parvo - wiele w niewielu)
Idea MIP mappingu
MIP mapping Przed renderowaniem sceny z każdej tekstury tworzonych jest kilka (zazwyczaj osiem) map tzw. MIP map. Mapy MIP to nic innego jak zmniejszone bitmapy utworzone na podstawie tekstury wzorcowej.
MIP mapping Każda kolejna mapa MIP jest czterokrotnie mniejsza od poprzedniej. Jeśli pierwsza miała rozmiar 256 256 pikseli, to następna będzie miała wielkość 128 128 punktów, kolejna 64 64 itd. Przy nakładaniu tekstury wybierana jest jedna lub dwie sąsiednie ze zbioru map MIP.
MIP mapping Do poteksturowania obiektu trójwymiarowego używa się tej tekstury, której rozdzielczość jest wystarczająca do reprezentowania obiektu obserwowanego z pewnej odległości. Właśnie od odległości zależy, która mipmapa zostanie wybrana. Im obiekt znajduje się dalej od obserwatora, tym mniejszą zajmuje powierzchnię i tym mniejsza tekstura jest potrzebna.
MIP Mapping Przykładowo: jeśli obiekt ma wymiary ok. 10x13 pikseli, to do jego poteksturowania wystarczy tekstura 16x16, a jeśli to ok. 54x40 to wystarcza tekstura 64x64 itd. W obu przykładach nie ma sensu skalować tekstury o najwyższej rozdzielczości (powiedzmy 256x256) bo i tak duża część pikseli nigdy nie będzie widoczna. W praktyce najczęściej nie jest wybierana jedna mipmapa, ale brane są dwie najbliższe i dokonywana jest interpolacja pobranych z nich atrybutów
MIP mapping Tekstura nałożona: bez MIP mappingu (z lewej) i z MIP mappingiem (z prawej)
MIP Mapping Zalety mipmappingu: Wstępne usuwanie zakłóceń skalowanych tekstur, co ma istotne znaczenie w grafice czasu rzeczywistego (gry komputerowe, symulatory lotu). Zwiększenie prędkości teksturowania, ponieważ przetwarzana jest o wiele mniejsza liczba tekseli. Wady: Zwiększenie wymagań pamięciowych o 1/3. Mipmapping jest implementowany sprzętowo w kartach grafiki.
Przykładowe MIP mapy
Próbkowanie punktowe Zastosowanie prostego MIP mappingu nie rozwiązuje w pełni problemu dopasowania tekstur do wielkości trójkątów Bardzo często przy teksturowaniu, pojedyncze teksele powielane są w różnych miejscach wielokąta Technika przyporządkowania każdemu pikselowi ekranu atrybutów jednego lub kilku tekseli to tzw. próbkowanie punktowe (ang. point sampling texturing) Często objawia się to efektem potocznie nazywanym pikselozą widoczne stają się jednokolorowe obszary pikseli, zwłaszcza gdy tekstura musi pokryć obszar znacząco większy niż ona sama
Filtrowanie tekstur Aby uniknąć pikselozy korzysta się z tzw. filtrowania tekstur Z reguły występują różne rodzaje zależności między pikselem, a tekselem (bądź zbiorem tekseli), które piksel reprezentuje na ekranie. Zależą one od położenia teksturowanej powierzchni w stosunku do obserwatora i w każdym przypadku potrzebne są różne formy filtrowania. Istnieje taka odległość obiektu od obserwatora, dla której rozmiar teksela kwadratowej tekstury (lub MIP mapy) mapowanej na kwadratowej powierzchni obiektu jest dokładnie równy rozmiarowi piksela ekranu.
Filtrowanie tekstur Jeśli obiekt znajdzie się w bliższej odległości obszar zajmowany uprzednio przez teksel staje się większy niż piksel ekranu i musi nastąpić odpowiednie skalowanie teksela proces zwany powiększaniem tekstury (ang. texture magnification). W dalszej odległości obszar taki jest jest mniejszy niż piksel ekranu, a więc jeden piksel obejmuje obszar wielu tekseli. W takim przypadku piksel przyjmuje kolor pochodzący od zbioru tekseli, których obszar obejmuje jest to tzw. minifikacja tekstury (ang. texture minification)
Filtrowanie tekstur Biblioteki graficzne (np. OpenGL) umożliwiają programiście ustawianie różnych opcji filtrów minifikacji i powiększania Nawet w przypadku, gdy piksele i teksle mają dokładnie taki sam rozmiar, niekoniecznie będą do siebie pasować Piksel może być źle wyrównany lub obrócony i obejmować części czterech sąsiednich tekseli. Dlatego nadal wymagana jest pewna forma filtrowania
Teksturowanie - filtrowanie Filtrowanie tekstur można dokonać na różne sposoby - do najważniejszych należą: interpolacja najbliższego sąsiada metoda najbliższego sąsiada z mipmappingiem liniowe filtrowanie mipmap filtrowanie dwuliniowe filtrowanie trójliniowe filtrowanie anizotropowe
Interpolacja najbliższego sąsiada Interpolacja najbliższego sąsiada jest najprostszą i najbardziej bezpośrednią metodą filtrowania Piksel przyjmuje kolor teksela, którego centrum leży najbliżej centrum piksela Choć proste, powoduje to dużą liczbę artefaktów: blokowanie" tekstury podczas powiększania pojawiają się duże kwadratowe obszary pikseli o tym samym kolorze, spowodowane gwałtownym skokiem, koloru, gdy centrum kolejnego piksela staje się bliższe centrum innego teksela. aliasing (schodkowanie) i migotanie podczas minifikacji
Najbliższy sąsiad z mipmapping Ta metoda nadal używa interpreacji najbliższego sąsiada, ale dodaje mipmapping: najpierw jest wybierany najbliższy poziom MIPmapy zgodnie z odległością od obserwatora, następnie piksel przyjmuje kolor teksela, którego centrum leży najbliżej centrum piksela Metoda charakteryzuje się mniejszą liczbą artefaktów blokowanie podczas powiększania pozostaje, gdyż każdy powiększony texel nadal wygląda jak duży prostokąt
Liniowe filtrowanie mipmap Rzadziej używane. Polega na pobieraniu dwóch próbek metodą najbliższego sąsiada Próbki pochodzą z dwóch najbliższych mipmap odpowiednich dla danej odległości obiektu od obserwatora i ich liniowej interpolacji.
Filtrowanie dwuliniowe (ang. bilinear filtering) Polega na przyporządkowaniu każdemu punktowi teksturowanego trójkąta nie jednego koloru teksela, ale barwy otrzymanej w wyniku interpolacji czterech sąsiednich tekseli najbliższej mipmapy
Filtrowanie dwuliniowe Usuwa "blokowanie" tekseli podczas powiększania tekstury, ponieważ występuje gładki gradient zmiany koloru przy przejściu od jednego teksela do następnego.
Filtrowanie trójliniowe Bardziej zaawansowaną metodą jest filtrowanie trójliniowe (ang. trilinear filtering) polegające na tym, że do ujednolicania barwy stosuje się dwie kolejne mapy MIP Najpierw poddaje się interpolacji dwuliniowej mapę pierwszą, bezpośrednio mniejszą od rzeczywiście wymaganej - później drugą, bezpośrednio większą np. jeśli trójkąt wymaga wycinania z mapy o rozdzielczości 100 tekseli, to brane są pod uwagę mapy 64x64 i 128x128 Dopiero uśredniony wynik obu tych operacji (w sumie interpolujemy wartość ośmiu tekseli) nakłada się na mapowany trójkąt
Filtrowanie dwu i trójliniowe Różnica pomiędzy filtrowaniem dwuliniowym (po lewej), a trójliniowym (po prawej). Strzałkami oznaczono miejsca widocznych przejść pomiędzy poziomami szczegółowości mipmap.
Filtrowanie anizotropowe Filtrowanie to (ang. anisotropic filtering) jest najbardziej zaawansowaną metoda filtrowania wymagająca największej mocy obliczeniowej Bierze ona dodatkowo pod uwagę orientację przestrzenną tekstury względem obserwatora. Dzięki temu obszary, z których interpolowane są brakujące wartości, układają się w kształt elipsy, prostokąta lub rombu (długa oś wyznacza kierunek obserwacji)
Filtrowanie anizotropowe Filtrowanie anizotropowe przekształca kwadratowe tekstury tak, aby ich widok pod pewnym kątem w stosunku do obserwatora był on zgodny z widokiem obiektu rzeczywistego.
Filtrowanie anizotropowe Filtrowanie anizotropowe umożliwia zatem zachowanie oryginalnego kształtu tekstur również na obiektach znajdujących się pod pewnym kątem w stosunku do obserwatora
Teksturowanie - korekcja perspektywy Podczas odwzorowania często występują problemy z zachowaniem odpowiedniej perspektywy. Dotyczy to: dużych trójkątów z nałożonymi teksturami (np. ściany, sufity lub podłogi) znajdujących się niemal prostopadle do płaszczyzny ekranu Elementy sceny rozjeżdżają się, dając dziwne powykrzywiane wzory spowodowane załamywaniem się tekstur lub ich zanikaniem (np. w scenach z długim tunelem). Błąd ten wynika ze złej metody uwzględnienia położenia wielokąta w przestrzeni.
Teksturowanie - korekcja perspektywy W celu wyeliminowania tych niepożądanych efektów stosuje się algorytmy korekcji perspektywy (ang. perspective correction) Metoda ta polega na: stworzeniu wirtualnych punktów zbieżności w nieskończoności. następnie linie równoległe do osi układu współrzędnych muszą się zbiegać w tych punktach. dopiero wówczas akcelerator, zgodnie z zasadą rzutu perspektywicznego, nakłada tekstury już bez tych niechcianych deformacji.
Teksturowanie - korekcja perspektywy
Teksturowanie - korekcja perspektywy brak perspektywy po korekcji perspektywy po filtrowaniu dwuliniowym
Mapowanie wybojów Mapowanie wybojów powoduje złudzenie, że obiekt nie jest gładki, a chropowaty. Gdy na niego patrzymy zdaje nam się, że widzimy wypukłości, rysy czy rowki Z jednej strony wybój (wypukłość) będzie jasny, z drugiej ciemny. Należy pamiętać, że mapowanie wybojów to efekt manipulujący wyłącznie grą światła a nie wielokątami
Mapowanie wypukłości
Mapowanie wypukłości
Mapowanie wybojów i środowiska Metody mapowania wybojów można podzielić na: mapowanie wypukłości (bump mapping) tłoczenie wybojów (emboss bump mapping) środowiskowe mapowanie wybojów (Environment- Mapped Bump Mapping, EMBM) DOT 3 mapping i inne Mapowanie środowiska Multiteksturowanie Mapowanie trójwymiarowe
Mapowanie wypukłości W metodzie tej dla każdej tekstury tworzone są tzw. mapy wybojów (ang. bump maps). Są one płaskimi bitmapami, podobnie jak zwykłe tekstury, Jasność poszczególnych pikseli określa położenie (wysokość) tekseli nad płaszczyzną tekstury Mapa wybojów jest nakładana na pierwotną teksturę, Dzięki temu otrzymujemy dodatkową informację o usytuowaniu każdego teksela względem płaszczyzny tekstury.
Tworzenie mapy wybojów 1. Tekstura podstawowa 2. Desaturacja pozbawienie kolorów
Tworzenie mapy wybojów 3. Inwersja - odwrócenie kolorów 4. Zwiększenie intensywności czerni
Tłoczenie wybojów Sprawdza się ono dobrze wtedy, gdy na tekstury spoglądamy pod niewielkim kątem lub są one nakładane na poruszające się obiekty. Tłoczenie realizowane jest w trzech etapach w pierwszym z nich z mapy opisującej wygląd wypukłości (mapy wybojów) tworzone są dwa monochromatyczne obrazy. jeden zostanie wykorzystany do przedstawienia obszarów jaśniejszych, a drugi będzie odpowiadał za fragmenty zacienione
Tłoczenie wybojów w drugiej fazie obie bitmapy przesuwane są o kilka pikseli względem siebie (jedna do tyłu, druga do przodu) wzdłuż kierunku padającego światła ostatni z etapów polega na zlaniu rozsuniętych bitmap (przy wykorzystaniu omawianego w dalszej części prezentacji alpha-blendingu) z właściwą teksturą obiektu
Tłoczenie wybojów Od lewej: obiekt 3D obłożony zwykłą teksturą, obiekt 3D obłożony mapą wybojów, obiekt 3D obłożony mapą wybojów i teksturą
Torus z wgłębieniami funkcja wgłębień określona ręcznie
Truskawka z wgłębieniami funkcja wgłębień określona ręcznie
Jednoczesne teksturowanie, oświetlanie i mapowanie wybojów
Środowiskowe mapowane wybojów W bardziej zawansowanych metodach bump-mappingu dodatkowo wykorzystuje się tzw. mapy środowiska (ang. environment maps). Mapy środowiska zawierają w sobie informacje m.in. o refleksach na powierzchni przedmiotu od rozstawionych na generowanej scenie wielokolorowych: świateł lustrzanych, odbić i refleksów świetlnych, które pochodzą od innych przedmiotów otaczających obiekt
Środowiskowe mapowane wybojów Mapowanie środowiskowe w połączeniu z mapowaniem wybojów pozwala otrzymać zaawansowane efekty, takie jak falująca powierzchnia wody, w której odbijają się nadbrzeżne drzewa. Uzyskanie takich rezultatów możliwe jest dzięki nałożeniu w jednym przebiegu trzech bitmap: podstawowej tekstury, mapy wypukłości oraz mapy środowiska. Mapa wybojów nakładana jest na mapę środowiska, W wyniku tego powstaje zaburzona mapa środowiska (ang. perturbed environment map), Następnie mapa ta łączona jest ona z właściwą teksturą nakładaną na obiekt.
Środowiskowe mapowane wybojów II ćwiartka obraz szkieletowy I ćwiartka tekstura III ćwiartka mapa wybojów IV ćwiartka sumaryczna mapa w środowisku
Mapowanie środowiska
Mapowanie środowiskowe Mapowanie środowiskowe pozwala na symulowanie odbić światła. Do oka obserwatora trafia tylko to, co zostanie odbite (nie pochłonięte) przez materiał, z jakiego zbudowany jest obiekt. Promień trafiający na scenę podlega szeregowi kolejnych odbić, za każdym razem tracąc część informacji. Jeśli promień zacznie się odbijać od różnych przedmiotów na scenie to straci cześć koloru do oka obserwatora trafi tylko niepochłonięta część widma. Promień utworzy element obrazu w wielu przypadkach będzie to obraz wielu obiektów. W wyniku tego do oka trafia obraz znamy z rzeczywistego świata - na obiektach sceny pojawiają się odbicia innych jej obiektów.
Mapowanie środowiskowe
Mapowanie środowiskowe Dla każdego obiektu sceny wszystkie inne stanowią środowisko. Oczywiście pojawianie się odbić będzie ściśle związane z rodzajem powierzchni, jaką posiada dany obiekt. Na podstawie odbić od obiektów trudno jest wnioskować o kształcie otaczającego świata. Ale przecież nie do końca o to chodzi należy jedynie zasugerować obserwatorowi, że: pewne obiekty są zbudowane z materiałów, które potrafią odbijać większość padającego na nie światła (metal, szkło, czy woda), inne odbijają niewiele światła, jeszcze inne pochłaniają całe promieniowanie są to przedmioty matowe.
Mapowanie środowiskowe Dokładna symulacja wszystkich odbić poszczególnych promieni padających na scenę jest zupełnie niemożliwa w rozsądnym czasie. Zamiast analizować wszystkie promienie aby nadać pikselom obiektu odpowiednie atrybuty należy: określić widok z miejsca położenia obiektu, utworzyć dla tego widoku pewną teksturę, dokonać przekształceń tej tekstury, nałożyć ją na obiekt w pewien specyficzny sposób. Metoda taka ma oczywiście pewne zalety i pewne wady. Zaletą niewątpliwie jest jej duża szybkość jak wiemy nakładanie wielu tekstur na obiekty jest wspomagane sprzętowo.
Mapowanie środowiskowe Większość obiektów odbijających nie jest płaska, więc mapa odzwierciedlająca środowisko nie musi być bardzo dokładna Wystarczy, że będzie mniej więcej prezentować to, co powinno być widoczne Oczywiście im obiekt większy, bardziej płaski i bardziej odbijający światło tym tekstura musi być dokładniejsza Podstawową wadą metody jest oczywiście ruch jeśli nagle przedmioty otaczające odbijający obiekt zaczną się poruszać, to mapa środowiska staje się nieadekwatna Ale istnieje wiele sposobów radzenia sobie z tym problemem dwie najczęściej stosowane to: mapowanie sferyczne metoda prostsza i aktualnie szerzej znana, choć powoli wypierana przez mapowanie sześcienne jest bardziej złożone, ale efektywniejsze
Mapowanie środowiska na niepłaskim obiekcie
Mapowanie sferyczne Tekstura (mapa) środowiska będzie reprezentować rzeczywistość otaczającą obiekt w pewien specyficzny sposób. Wyobraźmy sobie, że stoimy w miejscu obiektu robimy zdjęcia otaczającej nas rzeczywistości tak, aby można było wyłożyć nimi otaczającą nas kulę. Ktoś, kto wejdzie do środka takiej kuli będzie oglądał namiastkę rzeczywistości. Tak mniej więcej działa sferyczne mapowanie środowiska. Na obiekt rzutuje się teksturę wypełniającą wnętrze kuli otaczającej obiekt. Zamiast kuli tworzy się jednak specjalny rodzaju tekstury, która po odpowiednim dobraniu współrzędnych mapowania pozwoli się "nałożyć" na obiekt w sposób podobny do opisanego powyżej.
Mapowanie sferyczne W takim modelu można wyróżnić dwie istotne i zupełnie niezbędne do dalszego działania sprawy: pierwszą jest sposób tworzenia map środowiska. drugą jest sposób przyporządkowania współrzędnych mapy świata konkretnym współrzędnym obiektu. Zacznijmy od drugiego z problemów aby policzyć współrzędne na mapie środowiska potrzebne będą: współrzędne rozpatrywanego punktu obiektu w układzie współrzędnych świata normalne w tych wierzchołków.
Mapowanie sferyczne Głównym celem działań jest wyznaczenie wektora odbicia promienia (na rysunku promień niebieski). Normalną oznaczono kolorem czerwonym, a zielony wektor wskazuje kierunek przeciwny do położenia oka obserwatora (kamery). Promień odbity wyznaczy obszar na mapie środowiska, z którego należy pobrać atrybuty (kolor) wpływające na kolor wierzchołka (punktu).
Mapowanie sferyczne W ten sposób powstają obrazy innych obiektów sceny odbijane przez analizowany obiekt na górnym rysunku przedstawiono jedynie powierzchnię tego obiektu (reflector). Problem może się nieco skomplikować w przypadku obiektów przeźroczystych lub półprzeźroczystych W tym przypadku obraz będzie dodatkowo zdeformowany, co oczywiście należy uwzględnić w obliczeniach
Mapowanie sferyczne Najpierw należy utworzyć unormowany wvektor v ( v = 1) pomiędzy położeniem kamery a położeniem wierzchołka P obiektu. Na tej podstawie tworzymy wektor odbicia r = v 2 n v n, wykorzystując unormowany wektor normalny (n) do obiektu w miejscu rozpatrywanego wierzchołka. Wektor r jest symetryczny do odwróconego wektora v względem wektora normalnego. Posługując się wektorem r będzie można pobrać z mapy środowiska atrybuty punktu E, decydujące o kolorze refleksu w wierzchołku P.
Mapowanie sferyczne Powróćmy teraz do problemu pierwszego Wyobraźmy sobie sytuację jak na rysunku na sferę nałożony zostanie obraz całego otaczającego ją świata. Oczywiście środek sfery musi być umieszczony na scenie w położeniu analizowanego obiektu. Źródłem obrazu świata będzie sześć obrazów umieszczonych na ścianach sześcianu opisanego na sferze. Obrazy te zostaną uzyskane poprzez rendering sceny po usunięciu obiektu, który analizujemy. Kamera będzie się znajdować w środku sfery nakierowana kolejno na każdą ze ścian otaczającego ją sześcianu. Wszystkie sześć obrazów musi w miarę dobrze przylegać do siebie aby po zrzutowaniu na sferę nie było zakłóceń.
Mapowanie sferyczne Mapę sferyczną należy następnie spłaszczyć, tak, aby otrzymać teksturę środowiska. Rysunek pokazuje odwzorowanie obszarów sfery na płaskiej mapie środowiska. Dolny rysunek przedstawia przekrój sfery płaszczyzną zawierającą średnicę sfery i punkt obserwatora znajdujący się z prawej strony. Odcinki łączą białe punkty sfery z ich kolorowymi rzutami na płaszczyznę prostopadłą do płaszczyzny rysunku stanowiącą płaską mapę środowiska. Żółte punkty mapy odpowiadają prawej półkuli tzn. leżącej po stronie obserwatora, a czerwone lewej półkuli tej po stronie przeciwnej. Promień odbity od obiektu powinien trafiać w biały punkt i stamtąd pobrać element obrazu zamiast tego pobiera informację z odpowiadającego mu punktu płaskiej mapy tekstury środowiska
Mapowanie sferyczne Prawa część sfery zrzutowana jest więc do centrum mapy, a lewa do obszarów zewnętrznych. Przykładowa, wynikowa mapa (tekstura) środowiska jest przedstawiona na dolnym rysunku. W jej centralnej części (kolor żółty na górnym rysunku) znajduje się obraz przedniej półkuli, a na obrzeżu (kolor czerwony na górnym rysunku) obraz tylnej. Taka kołowa tekstura zostaje nałożona na obiekt (oczywiście niewidoczny na mapie środowiska)
Mapa środowiska
Mapowanie sferyczne W przypadku mapowania sferycznego obrazy przedmiotów na lśniącej powierzchni wyglądają dobrze do momentu, gdy ani obserwator, ani przedmiot nie zmieniają swojego położenia. W chwili gdy przedmiot nieznacznie się przemieści, wystarczy przesunąć punkt zaczepienia tekstury. Jeśli jednak przemieszenie jest zbyt duże, odbicia ulegają silnemu zniekształceniu i należy zmienić mapę środowiska Metodą pozbawioną tej wady jest mapowanie sześcienne
Mapowanie sześcienne Rozwiązanie powyższego problemu polega na nakładaniu na bryłę elementów nie jednej, ale sześciu tekstur.
Mapowanie sześcienne Tych sześć tekstur to obrazy: dolnej, górnej i czterech bocznych części otoczenia obiektu.
Mapowanie sześcienne Atrybuty obrazu są pobierane z jednej z sześciu tekstur tej na którą trafia promień odbity od obiektu. O tym, która to będzie tekstura decyduje położenie obserwatora (kamery) oraz normalna do powierzchni obiektu
Mapowanie sześcienne tył dół przód lewy Czajniczek z mapą środowiska prawy góra
Mapowanie sześcienne
Mapowanie sześcienne zdeformowana kropla z mapą środowiska
Mapowanie sześcienne Główne zalety metody: Po pierwsze - łatwość tworzenia mapy świata - sześć tekstur projekcyjnych przedstawiających aktualny stan sceny. Po drugie - niezależność od położenia kamery. Po trzecie szybkość obliczenia jakie trzeba wykonać dla mapowania sferycznego są o wiele bardziej skomplikowane i czasochłonne. Po czwarte - brak zakłóceń mapa sferyczna mogła zawierać różne zniekształcenia i artefakty. Po piąte, ostatnie i najważniejsze - mapa reprezentująca środowisko zawiera dokładnie to, co dzieje się na scenie.
Multiteksturowanie Podczas teksturowania, w większości przypadków na jeden obiekt nakładanych jest kilka różnych bitmap. Im więcej mapowanych jest tekstur, tym potrzeba większej mocy obliczeniowej akceleratora. Przeciętnie szybki procesor graficzny przeznaczony do użytku domowego umożliwia mapowanie do kilkudziesięciu gigatekseli w ciągu jednej sekundy. Tę podaną wartość nazywa się współczynnikiem fillrate i określa ona teoretyczną szybkość procesu wypełniania wielokątów przez procesor graficzny.
Mapowanie trójwymiarowe Specyfikacja OpenGL 1.2 i pakiet Microsoft DirectX od wersji 8.0 uwzględniają obsługę tekstur 3D Obrazy tego typu, nazywanych często warstwowymi lub wolumetrycznymi, od długiego już czasu korzystają lekarze wykonujący komputerową tomografię Nowa technika oznacza przede wszystkim, iż tekstury przestają wyłącznie okrywać powierzchnię przedmiotów, ale wnikają do ich wnętrza. W przypadku tekstur 3D proces obliczeniowy jest wyjątkowo prosty. Aby obejrzeć wnętrze bryły należy części tekseli (wokseli) nadać atrybut przezroczystości. Można wtedy zobaczyć wszystkie najdrobniejsze detale, gdyż budowa i faktura wnętrza zawarte są w mapie wolumetrycznej.
Mapowanie trójwymiarowe
Mapowanie trójwymiarowe Również w przypadku tekstur volumetrycznych stosowana jest technika MIP mappingu Objętość trójwymiarowych tekstur jest jednak wyjątkowo duża. Np. 32-bitowa dwuwymiarowa tekstura o wymiarach 16 16 pikseli ma objętość 1024 bajtów. Po dodaniu trzeciego wymiaru (16 16 16 punktów) rozrasta się jednak do 16 384 bajtów! Tak znaczne pojemności przetwarzanych obiektów wymagają od systemu olbrzymiej przepustowości magistrali pamięci i stosowania algorytmów kompresji tekstur
Alpha-blending Aby określić stopień przezroczystości tekstury wykorzystywany jest tzw. kanał alfa i technika nazywana alpha-blendingiem Kanał alfa jest parametrem określającym stopień przezroczystości (właściwie nieprzezroczystości) tekstury. Przyjmuje on wartości od zera (obiekt zupełnie transparentny) do 255 (powierzchnia nieprzezroczysta) Jeśli nałożona zostanie tekstura z kanałem alfa równym zero, nic się nie zmieni na rysunku, tekstura będzie niewidoczna Jeżeli wartość kanału wynosi np. 128 (rysunek z prawej), wówczas obłożony nią obiekt będzie półprzezroczysty, a znajdujące się za nim przedmioty będą przezeń widoczne.
Kule i szachownica
Alpha-blending Wartość kanału alfa jest jednym z czterech parametrów tekstury wszystkie nowe akceleratory obsługują 32 bitowy kolor. Jak wiadomo do przedstawienia pełnej palety barw wystarczą 24 bity brakujące 8 bitów to właśnie kanał alfa. Tekstury 32-bitowe nazywane są RGBA - trzy kolory składowe oraz kanał alfa.
Alpha-blending z mapowaniem środowiska