Jak działa mapowanie tekstur UVW?


13

Próbuję zrozumieć teorię matematyczną stojącą za mapowaniem UVW. Czy ktoś może mi wyjaśnić, jak działa mapowanie UVW? A przynajmniej zapewni mi wskaźnik?



Dzięki, ale wciąż nie jest dla mnie jasne znaczenie W. Czy jest jakaś książka do naśladowania?
Jack

Myślę, że W polega na tym, że tekstury zwykle mają 3 kanały, nie znam żadnego rzeczywistego zastosowania.
Elva

1
@Yourdoom The W nie ma nic wspólnego z liczbą kanałów tekstury. Jest raczej używany do tekstur 3D lub tekstur perspektywicznych.
Chris mówi Przywróć Monikę

4
XY oznacza XYZ, podobnie jak UV jest UVW. W jest tylko literą używaną przy opisywaniu trzeciego wymiaru tekstury.
MichaelHouse

Odpowiedzi:


14

Tak to rozumiem. Może być całkowicie nie tak, ale jestem pewien, że ktoś to zrobipłomień Popraw mnie, jeśli się mylę.

Teoria matematyczna stojąca za mapowaniem tekstury UVW jest podobna do teorii stojącej za mapowaniem tekstury UV.

Zobacz link Bummzacka tutaj: Czym dokładnie jest UV i UVW Mapping? aby uzyskać lepsze wyjaśnienie, czym jest mapowanie UV. Zasadniczo mapujesz obszar tekstury na obszar powierzchni. Interpolacja wartości pomiędzy na podstawie tych mapowań.

To samo z UVW. Tyle że teraz mapujesz objętość tekstury na objętość powierzchni. Interpolacja wartości pomiędzy. Teraz dzięki 3. wymiarowi możesz wypaczać teksturę 2D, aby lepiej dopasować obiekt.

Zobaczmy, jak to jest używane w teksturach 3D. Tekstury 3D można tworzyć za pomocą warstw tekstur 2D i interpolując je pomiędzy nimi. Wizualnie tekstura 3D może wyglądać mniej więcej tak:

Przykład tekstury 3D

Gdzie „płaszczyzny” na osi R są teksturami 2D. Gdybyśmy ustawili każdą warstwę na inny jednolity kolor i zastosowali to do obiektu 3D, otrzymalibyśmy coś takiego:

Zastosowano teksturę 3D

Możesz zobaczyć, w jaki sposób jednolite kolory zostały interpolowane między warstwami. Oto ten sam rodzaj rzeczy, ale z krajobrazem. Gdzie od góry do dołu, tekstury mogą być: śnieg, skała, trawa, piasek.

Krajobraz

Czy teraz używamy tylko jednej „płaszczyzny” R (jednej tekstury 2D), ale mapujemy na obiekt 3D? Oczywiście nie zapewnia to tak dużej elastyczności jak wiele warstw tekstur, ale z pewnością jest o wiele mniej pracy. Jednak samo rzutowanie tekstury 2D na powierzchnię 3D spowoduje pewne problemy. Pomyśl o sytuacji, w której świecisz laserem na ścianie. Pod kątem prostym punkt lasera jest ładny i okrągły. Pod dowolnym innym kątem punkt zaczyna się rozciągać i pochylać. To samo stanie się, gdy rzutujesz teksturę 2D na powierzchnię 3D. Każda twarz, która nie jest prostopadła do projekcji, zostanie zniekształcona. Jak to naprawimy? Przez zniekształcenie projekcji. Weźmy przykład lasera, jeśli mieliśmy laser, który świecąc na prostopadłej powierzchni był rozciągnięty i przekrzywiony. Gdy zaświeciłem ten laser na pochyloną ścianę, kąt mógłby „Trzeci wymiar pozwala nam „kształtować” rzut tak, aby pasował do powierzchni, na którą celujemy. Na przykład jakaś falista powierzchnia 3D może mieć teksturę taką jak ta (ale nie tak kiepska):

Chrupiąca tekstura 2D została rozszerzona do 3D

Tak jak powiedziałem, to tylko moje rozumienie tego. Zgadzam się, nie ma zbyt wielu dobrych informacji na ten temat. Mam nadzieję, że ta (prawdopodobnie błędna) odpowiedź zachęci kogoś z większą wiedzą na ten temat do wypowiedzenia się.

Obrazy tekstur 3D pochodzą z tej strony: http://www.gpwiki.org/index.php/OpenGL:Tutorials:3D_Textures

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.