Perspektivně korektní mapování textur

Perspektivně korektní mapování textur je výpočet, který při rozmisťování textury na promítnutý 3D povrch zohledňuje jeho hloubku. Vzor na šikmé podlaze se má směrem do dálky zhušťovat tak, jak odpovídá perspektivě.

Nestačí proto pouze rovnoměrně rozdělit souřadnice textury mezi vrcholy už promítnuté do plochého obrazu. Body na vzdálenější části polygonu neodpovídají stejným rozestupům na obrazovce jako body v jeho blízké části.

Srovnání šachovnice na stejné rovině: A afinní, B perspektivně korektní mapování
Schematická ilustrace: A – afinní mapování, B – perspektivně korektní mapování téže roviny. Červená čára ukazuje společnou hranu dvou trojúhelníků. U A se vzor podél úhlopříčky láme; B zachovává souvislou perspektivu. Vlastní matematické schéma PSko, nikoli snímek ze hry.

Rozdíl proti afinnímu mapování

Afinní mapování používá lineární interpolaci v obrazu. Perspektivní korekce při ní navíc pracuje s hloubkovou složkou, aby obnovila správný vztah mezi souřadnicemi povrchu a výsledným pixelem. Programátorský výklad z roku 1999 ukazuje postup pomocí interpolace hodnot souvisejících s převrácenou hloubkou. Hráč rozdíl pozná například na pravidelném vzoru, který se při změně pohledu tolik nedeformuje.

Co korekce řeší a co zůstává

GPU původního PlayStationu tuto korekci přímo neposkytuje; jeho lineární mapování proto může přispívat k texture warpingu. Rozdělení velkých ploch na menší části může chybu zmenšit, není to však totožný výpočet. Perspektivní korekce sama nezvyšuje rozlišení textury ani nevyhlazuje zubaté hrany. Správně promítnutá textura tak stále může být hrubá nebo pixelová.

Podklady: Flipcode: perspektivně korektní texturování; psx-spx: perspektiva a GPU PS1.