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?
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?
Odpowiedzi:
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:
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:
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.
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):
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