Displacement mapping - Displacement mapping

Karteziánská doprava
Mapování posunu v síti
Polární doprava
Mapování posunutí pomocí efektů filtru SVG

Displacement mapping je alternativní počítačovou grafickou technikou na rozdíl od bump mapping , normálního mapování a paralaxního mapování pomocí ( procedurální -) textury - nebo výškové mapy k vyvolání efektu, kdy je skutečná geometrická poloha bodů nad texturovaným povrchem posunuta , často podél místního povrchu normální , podle hodnoty, kterou hodnotí funkce textury v každém bodě na povrchu. Dává povrchům velký smysl pro hloubku a detaily, což umožňuje zejména vlastní okluzi, stínování a siluety; na druhou stranu je to nejnákladnější z této třídy technik kvůli velkému množství další geometrie.

Mapování posunu bylo po léta zvláštností špičkových systémů vykreslování, jako je PhotoRealistic RenderMan , zatímco API v reálném čase , jako OpenGL a DirectX , tuto funkci teprve začínaly používat. Jedním z důvodů je to, že původní implementace mapování posunutí vyžadovala adaptivní mozaikování povrchu, aby se získal dostatek mikropolygonů, jejichž velikost odpovídala velikosti pixelu na obrazovce.

Význam pojmu v různých kontextech

Displacement mapping zahrnuje termín mapování, které odkazuje na mapu textury používanou k modulaci síly posunu. Směr posunutí je obvykle normální místní povrch. Dnes mnoho rendererů umožňuje programovatelné stínování, které může vytvářet vysoce kvalitní (vícerozměrné) procedurální textury a vzory na libovolně vysokých frekvencích. Použití pojmu mapování se pak stává diskutabilní, protože již není zahrnuta žádná mapa textur. Širší termín posunutí se proto dnes často používá k označení super konceptu, který také zahrnuje posun na základě mapy textur.

Renderery používající algoritmus REYES nebo podobné přístupy založené na mikropolygonech umožnily mapování posunutí na libovolných vysokých frekvencích, protože byly k dispozici téměř před 20 lety.

První komerčně dostupný pro vykreslení provádět mapování přístup micropolygon posunu přes REYES byl Pixar je PhotoRealistic RenderMan . Mikropolygonové renderery si obvykle vytvářejí mozaikovou geometrii se zrnitostí vhodnou pro vykreslovaný obraz. To znamená: modelovací aplikace poskytuje rendereru vysoké úrovně primitiv. Mezi příklady patří skutečné povrchy NURBS - nebo subdivize . Renderer poté tuto geometrii v čase vykreslování oddělí do mikropolygonů pomocí omezení založených na pohledu odvozených z vykreslovaného obrazu.

Jiné renderery, které vyžadují, aby aplikace modelování doručovala objekty předem mozaikované do libovolných polygonů nebo dokonce trojúhelníků, definovaly termín mapování posunutí jako pohyb vrcholů těchto polygonů. Směr posunu je často omezen na normálu povrchu ve vrcholu. Přestože jsou tyto polygony koncepčně podobné, jsou obvykle mnohem větší než mikropolygony. Kvalita dosažená tímto přístupem je tedy omezena hustotou mozaikování geometrie dlouho před tím, než k ní renderer získá přístup.

Tento rozdíl mezi posunovým mapováním v vykreslovačích mikropolygonů a mapováním posunu v ne-mozaikových (makro) polygonových vykreslovačích může často vést ke zmatku v rozhovorech mezi lidmi, jejichž expozice každé technologii nebo implementaci je omezená. Ještě více, jako v posledních letech, mnoho vykreslovačů bez mikropolygonů přidalo schopnost provádět mapování výtlaku v kvalitě podobné té, kterou je vykreslovač s mikropolygonem schopen dodávat přirozeně. Aby bylo možné rozlišit mezi hrubým posunem na základě pre-mozaikování, který tyto vykreslovače provedly dříve, byl pro popis této funkce zaveden termín posunutí subpixelu.

Posun dílčích pixelů se běžně týká jemnějšího opětovného seskupení geometrie, která již byla mozaikována do polygonů. Výsledkem této re-teselace jsou mikropolygony nebo často mikrotrojúhelníky. Jejich vrcholy se pak pohybují po jejich normálech, aby bylo dosaženo mapování posunutí.

Skutečné vykreslovače mikropolygonů vždy dokázaly to, čeho dosáhlo posunutí subpixelů teprve nedávno, ale ve vyšší kvalitě a v libovolných směrech posunutí.

Nedávný vývoj naznačuje, že některé z rendererů, které používají subpixelový posun, směřují také k podpoře geometrie vyšší úrovně. Jelikož prodejci těchto rendererů pravděpodobně budou nadále používat termín subpixelový posun, pravděpodobně to ve 3D počítačové grafice povede k zamlžování toho, co mapování posunutí skutečně znamená .

V odkazu na patentovaný High Level Shader Language společnosti Microsoft lze posunutí mapovat jako druh „mapování vrcholů a textur“, kde hodnoty mapy textur nemění barvy pixelů (což je mnohem běžnější), ale místo toho mění polohu. vrcholů. Na rozdíl od nárazového, normálního a paralaxního mapování, o kterém všem lze říci, že „předstírá“ chování posunovacího mapování, lze tímto způsobem z textury vytvořit skutečně drsný povrch. Musí být použit ve spojení s adaptivními technikami teselace (které zvyšují počet vykreslených polygonů podle aktuálního nastavení prohlížení) k vytváření vysoce detailních sítí.

Viz také

Další čtení