Afinní mapování textur

Afinní mapování textur vypočítává souřadnice textury uvnitř vykreslovaného polygonu lineárně v prostoru obrazovky, bez perspektivní korekce. Je to způsob, jak určit, která část obrázku textury patří jednotlivým bodům plochy na obrazovce.

U plochy natočené do hloubky přitom vzdálenější části potřebují jiné perspektivní zkrácení než bližší. Prosté lineární rozložení tuto změnu správně nezachytí. Vzor na podlaze nebo stěně tak může působit zkoseně či nataženě.

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.

Proč se textura může vlnit

Při pohybu kamery se mění promítnutý tvar polygonů. Chyba v rozložení textury se proto může také měnit, což vytváří známý dojem jejího plavání nebo vlnění. Tento viditelný projev se označuje jako texture warping. Afinní mapování je metoda, která jej může způsobit; výraz warping pojmenovává to, co hráč vidí.

Perspektivní korekce

Perspektivně správný výpočet bere v úvahu i hloubku jednotlivých vrcholů. Historicky jednodušší afinní postup šetřil výpočetní práci. U původního PlayStationu patří nedostatek perspektivní korekce textur k jeho známým vlastnostem, zmiňovaným také tvůrci Crashe. Ne každé chvění obrazu má ale tuto příčinu: změny polohy samotných vrcholů nebo nízká přesnost geometrie jsou odlišný problém.

Podklady: Flipcode: perspektivní korekce textur; Tvůrci Crashe: vlastnosti grafiky PS1.