Jaka jest różnica między mapowaniem przemieszczenia a mapowaniem wysokości?


15

Jaka jest różnica między mapowaniem przemieszczenia a mapowaniem wysokości i jaki jest związek z adaptacyjną teselacją?


Powiedzmy, że kiedy chcę użyć mapowania wysokości na małym obiekcie, np. Kuli, jakich technik używam do eliminacji pęknięć? Wygładzanie Czy to jest bardziej wydajne niż przemieszczenie i teselacja adaptacyjna?
Jinxi

Odpowiedzi:


10

Mapowanie przemieszczenia i mapowanie wysokości to dwie nazwy dla „prawie” tej samej techniki, mają na celu uzyskanie tego samego efektu, ale są używane w różnych kontekstach.

Aby wyjaśnić więcej:

Mapowanie przemieszczenia: Jest to technika, która ma na celu renderowanie wypukłości jako prawdziwej geometrii w bardzo cienkiej siatce. W przeciwieństwie do mapowania wypukłości, paralaksy i mapowania wypukłości, które próbują „sfałszować” wypukłości za pomocą normalnych map, mapowanie przemieszczenia faktycznie przemieszcza powierzchnię, tworząc trójkąty między teksturami. .

Mapowanie wysokości: jest to samo, ale zwykle jest używane w kontekście, w którym mapa przemieszczenia (zwana również mapą wysokości) jest stosowana na terenie, na którym wartość jest używana tylko do modyfikacji wysokości wierzchołka.

Może być zaimplementowany na CPU lub GPU.

Jednym z powszechnych podejść do procesora jest odczytywanie wartości wysokości lub przemieszczenia z mapy wysokości / przemieszczenia (tekstury), w której każdy tekst bezpośrednio odwzorowuje na jeden wierzchołek. Gdzie każdy texel koduje wartość wysokości / przesunięcia. Jest to następnie stosowane bezpośrednio do geometrii poprzez przesunięcie każdego wierzchołka za pomocą wartości sprawdzonej w unikalnym kierunku.

Wybór kierunku może być w kierunku do góry (zwykle w przypadku terenów), co powoduje modyfikację wartości Y wierzchołka, lub może być w kierunku normalnej twarzy zwykle używanej na obiektach innych niż tereny.

Alternatywą dla GPU jest użycie funkcji pobierania tekstur wierzchołków (wprowadzonej w Shader Model 3.0), aby zmodyfikować siatkę terenu poprzez dostęp do mapy przemieszczenia / wysokości. Wysokość pobierana z tekstury jest używana przez program cieniujący wierzchołek do modyfikowania położenia wierzchołka .

Inne zastosowania użycia tekstury pozwalają na szybszą manipulację danymi do symulacji fal i innych animacji, które można zastosować do siatki.

Odnośnie teselacji adaptacyjnej:

Jedną z wad mapowania przemieszczeń jest to, że w przypadku dużych terenów potrzeba wielu wielokątów i wierzchołków do modelowania szczegółowego terenu, co sprawia, że ​​mapowanie przemieszczeń jest w pewnym stopniu nieefektywne w przypadku dużych terenów.

Właśnie w tym momencie gra się w adaptacyjną teselację i techniki szczegółowości, aby uczynić mapowanie przemieszczeń bardziej wykonalnym, szczególnie dzięki postępowi układów GPU i wprowadzaniu shaderów geometrii, wykonywanie teselacji w locie z tym postępem stało się dominującą techniką. Jest łatwy do zaprogramowania i na nowszych procesorach graficznych i ma kilka wad.

Inne techniki, takie jak mapowanie wypukłości i wypukłości, oferują dodatkowy realizm przy ogólnie rozsądnych kosztach, ale fakt, że powierzchnia podstawowa jest niezakłócona, sprawia, że ​​wykrywanie kolizji, a zatem interakcja z obiektami, jest trudniejsze.

Podsumowując, mapowanie przemieszczeń i adaptacyjna teselacja zapewniają najwyższą szczegółowość i jakość przy mniejszych wadach przy rozsądnym koszcie wydajności.


Nie zapomnij o ostatniej części pytania „i jaki jest związek z teselacją adaptacyjną?”
MichaelHouse

@ Byte56 dziękuję za powiadomienie, że zaktualizowałem odpowiedź.
concept3d

12

Mapowanie przemieszczenia może oznaczać (ale nie zawsze oznacza) przesunięcie wektora w każdym punkcie na powierzchni. Mapowanie wysokości implikuje jedynie wartość przemieszczenia skalarnego , tzn. Każdy punkt jest przesuwany wzdłuż swojej normalnej. Termin „mapowanie przemieszczenia” może być również stosowany w przypadku przemieszczeń skalarnych, więc kiedy dyskutuje się przesunięcia wektorowe, ludzie często wyraźnie mówią „mapowanie przemieszczenia wektora”.

Tesselacji można użyć do zastosowania mapy przemieszczenia, dzieląc powierzchnię na małe wielokąty i stosując przesunięcie (patrząc w górę z mapy) na każdy wierzchołek podzielonej powierzchni. Wymagany poziom podziału zależy częściowo od tego, jak głośna / szczegółowa jest mapa przemieszczenia, więc teselacji adaptacyjnej można użyć do dokładniejszego podziału na obszary o większej szczegółowości, ale mniej na obszary bardziej płaskie, co poprawia wydajność.


To jest obiektywnie poprawna odpowiedź. Subtelna różnica stanie się znacznie ważniejsza, ponieważ początkujący znajdą więcej kodów teselacji do skopiowania. (Proceduralne przemieszczenie wektora zostało już zaprezentowane przez nVidia)
MickLH

3

Zasadniczo są one tym samym.

Mapowanie przemieszczenia to technika dodawania szczegółów powierzchni, takich jak mapowanie wypukłości . Jednak w przeciwieństwie do mapowania wypukłości, mapowanie przemieszczenia polega na faktycznym deformowaniu geometrii w oparciu o pewną wejściową mapę wysokości (zasadniczo siatkę wartości wysokości).

„Mapowanie przemieszczenia” jest zasadniczo innym, dokładniejszym technicznie terminem określanym potocznie jako „mapowanie wysokości” (ściśle mówiąc, „mapowanie wysokości” prawdopodobnie powinno odnosić się do procesu generowania siatki danych o wysokości z jakiegoś materiału źródłowego, takiego jak jako skaner 3D, który będzie wykorzystywany w implementacji mapowania przemieszczeń - ale w praktyce większość ludzi używa tych terminów zamiennie, nawet jeśli w ogóle mówi „mapowanie przemieszczeń”.

Technika ta nie jest bezpośrednio związana z teselacją adaptacyjną, która sama w sobie polega na kontrolowaniu podziału opisu matematycznego siatki (np. Kuli) na konkretny zbiór trójkątów, który zostanie użyty do renderowania tej siatki. Bit „adaptacyjny” oznacza, że ​​szczegóły teselacji zmienią się na podstawie niektórych kryteriów wejściowych, takich jak odległość widzenia.

Na przykład w przypadku kuli możesz bardzo surowo sprzedawać tę kulę (efektywnie jako sześcian), gdy ta kula jest bardzo daleko, ale używaj więcej szczegółów, gdy kula jest blisko.

Często można zobaczyć techniki takie jak mapowanie przemieszczenia omawiane w połączeniu z teselacją, ponieważ teselacja wpłynie na to, jak chcesz odwzorować mapę elewacji na geometrię w celu wykonania przesunięcia (lub która rozdzielczość mapy elewacji, którą chcesz wybrać, itd.)


2

Są to ta sama koncepcja.

EDYCJA: Przemieszczenie może składać się z wysokości w więcej niż jednym wymiarze!

Nie rozpoczynaj z tym żadnych wojen semantycznych, ale realistycznie mapowanie wysokości zwykle odnosi się do technik opartych na dużej skali / teselacji, gdzie mapowanie przemieszczeń zwykle odnosi się do technik małej skali / raytracingu.

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.