Mapowanie przemieszczeń

Cartesian transport
Mapowanie przemieszczeń w siatce
Polar transport
Mapowanie przemieszczeń z efektami filtrów SVG

Mapowanie przemieszczeń to alternatywna technika grafiki komputerowej, w przeciwieństwie do mapowania wypukłości , normalnych i paralaksy , wykorzystująca mapę tekstury lub mapy wysokości w celu wywołania efektu, w którym rzeczywiste położenie geometryczne punktów na teksturowanej powierzchni jest przesunięte , często wzdłuż lokalnej normalnej powierzchni , zgodnie z wartością obliczaną przez funkcję tekstury w każdym punkcie na powierzchni. Daje powierzchniom wspaniałe poczucie głębi i szczegółowości, umożliwiając w szczególności samookluzję, samocieniowanie i sylwetki; z drugiej strony jest to najbardziej kosztowna z tej klasy technik ze względu na dużą ilość dodatkowej geometrii.

Przez lata mapowanie przemieszczeń było cechą charakterystyczną zaawansowanych systemów renderujących, takich jak PhotoRealistic RenderMan , podczas gdy interfejsy API działające w czasie rzeczywistym , takie jak OpenGL i DirectX , dopiero zaczynały korzystać z tej funkcji. Jednym z powodów jest to, że pierwotna implementacja mapowania przemieszczeń wymagała adaptacyjnej teselacji powierzchni w celu uzyskania wystarczającej liczby mikropoligonów , których rozmiar odpowiadał rozmiarowi piksela na ekranie. [ potrzebne źródło ]

Znaczenie terminu w różnych kontekstach

Mapowanie przemieszczenia obejmuje termin mapowanie, który odnosi się do mapy tekstury używanej do modulowania siły przemieszczenia. Kierunek przemieszczenia jest zwykle lokalną normalną do powierzchni. Obecnie wiele rendererów umożliwia programowalne cieniowanie , które może tworzyć wysokiej jakości (wielowymiarowe) proceduralne tekstury i wzory przy dowolnie wysokich częstotliwościach. Użycie terminu mapowanie staje się wtedy dyskusyjne, ponieważ nie ma już żadnej mapy tekstury. Dlatego dziś często używa się szerszego terminu przemieszczenie w odniesieniu do nadrzędnej koncepcji, która obejmuje również przemieszczenie oparte na mapie tekstury.

Renderery korzystające z algorytmu REYES lub podobnego podejścia opartego na mikropoligonach umożliwiły mapowanie przemieszczeń przy dowolnie wysokich częstotliwościach, odkąd stały się dostępne prawie 20 lat temu.

Pierwszym dostępnym na rynku narzędziem do renderowania, w którym zaimplementowano metodę mapowania przemieszczeń mikropoligonów za pomocą oprogramowania REYES, był PhotoRealistic RenderMan firmy Pixar . Renderery mikropolygonów zwykle tworzą mozaikę geometrii z ziarnistością odpowiednią dla renderowanego obrazu. To znaczy: aplikacja do modelowania dostarcza prymitywy wysokiego poziomu do renderera. Przykłady obejmują rzeczywiste NURBS lub powierzchnie podziału . Renderer następnie teseluje tę geometrię w mikropoligony w czasie renderowania, używając ograniczeń opartych na widoku pochodzących z renderowanego obrazu.

Inne renderery, które wymagają, aby aplikacja do modelowania dostarczała obiekty wstępnie podzielone na dowolne wielokąty, a nawet trójkąty, zdefiniowały pojęcie mapowania przemieszczeń jako przesuwanie wierzchołków tych wielokątów. Często kierunek przemieszczenia jest również ograniczony do normalnej powierzchni w wierzchołku. Chociaż koncepcyjnie podobne, te wielokąty są zwykle znacznie większe niż mikrowieloboki. Jakość osiągnięta dzięki temu podejściu jest zatem ograniczona przez gęstość mozaiki geometrii na długo przed uzyskaniem do niej dostępu przez renderer.

Ta różnica między mapowaniem przemieszczeń w rendererach mikropoligonów a mapowaniem przemieszczeń w rendererach (makro) wielokątów bez mozaiki może często prowadzić do nieporozumień w rozmowach między ludźmi, których kontakt z każdą technologią lub implementacją jest ograniczony. Tym bardziej, że w ostatnich latach wiele rendererów innych niż mikropoligony dodało możliwość mapowania przemieszczeń o jakości podobnej do tej, którą renderer mikropoligonu jest w stanie zapewnić naturalnie. w celu opisania tej funkcji wprowadzono termin przemieszczenie subpikseli . [ potrzebne źródło ]

Przemieszczenie subpikseli zwykle odnosi się do dokładniejszej ponownej teselacji geometrii, która została już ułożona w wielokąty. Ta ponowna teselacja skutkuje mikropoligonami lub często mikrotrójkątami. Ich wierzchołki są następnie przesuwane wzdłuż ich normalnych, aby uzyskać odwzorowanie przemieszczenia.

Prawdziwe renderery mikropoligonów zawsze były w stanie osiągnąć to, co udało się osiągnąć dzięki przemieszczeniu subpikseli dopiero niedawno, ale w wyższej jakości iw dowolnych kierunkach przemieszczenia.

Ostatnie zmiany wydają się wskazywać, że niektóre renderery, które używają przesunięcia subpikseli, zmierzają w kierunku obsługi geometrii wyższego poziomu. Ponieważ dostawcy tych rendererów prawdopodobnie będą nadal używać terminu przemieszczenie subpikseli, prawdopodobnie doprowadzi to do większego zaciemnienia tego, co naprawdę oznacza mapowanie przemieszczeń w grafice komputerowej 3D .

W odniesieniu do zastrzeżonego przez Microsoft języka High Level Shader Language , mapowanie przemieszczeń można interpretować jako rodzaj „mapowania wierzchołków i tekstur”, w którym wartości mapy tekstury nie zmieniają kolorów pikseli (co jest znacznie bardziej powszechne), ale zamiast tego zmieniają położenie wierzchołków. W przeciwieństwie do mapowania wypukłości, normalnych i paralaksy, o których można powiedzieć, że „sfałszowują” zachowanie mapowania przemieszczeń, w ten sposób z tekstury można uzyskać naprawdę szorstką powierzchnię. Musi być używany w połączeniu z adaptacyjnymi technikami teselacji (które zwiększają liczbę renderowanych wielokątów zgodnie z bieżącymi ustawieniami wyświetlania), aby tworzyć bardzo szczegółowe siatki. [ potrzebne źródło ]

Zobacz też

Dalsza lektura