Pojem " izometrie " v počítačových hrách označuje nějaký druh paralelní projekce (někdy se dimetrické projekci chybně říká "izometrická"). Je v něm posunutý pozorovací úhel a to vytváří trojrozměrný efekt a umožňuje zobrazit některé detaily prostředí, které nejsou vidět při pohledu shora nebo ze strany. Používají se také termíny "2,5D" a "pseudo-3D".
S příchodem výkonných grafických systémů se izometrické promítání stalo méně populární a bylo nahrazeno perspektivním promítáním.
V oblasti počítačových videoher se používání izometrie stalo oblíbeným díky tomu, jak snadno může 2D sprite a grafika založená na dlaždicích simulovat 3D prostředí. Vzhledem k tomu, že objekty nemění svou velikost v závislosti na jejich umístění v herním prostoru, není potřeba složitých výpočtů měřítek spritu a vizuálního modelování perspektivy. To umožňuje zobrazení velkých 3D prostorů na 8bitových a 16bitových i kapesních herních systémech. Hloubkové problémy lze vyřešit dobrým herním designem.
Projekce běžně používaná ve videohrách se poněkud liší od „skutečné“ izometrie kvůli omezením rastrové grafiky. Čáry x a y by vypadaly chaoticky, pokud by byly nakloněny o 30° k horizontále. Moderní počítače mohou tento problém vyřešit pomocí vyhlazování, ale starší grafické systémy nepodporovaly dostatek barev nebo k tomu neměly dostatečný výpočetní výkon.
Místo toho se osy x a y odchýlily o 26,565° (0,5 arkustangens) od horizontály, ale herní systémy bez čtvercových pixelů mohly zobrazovat jakýkoli úhel, včetně "skutečné" izometrie. Proto lze tento tvar promítání popsat jako modifikaci dimetrického promítání, protože v něm jsou stejné pouze dva ze tří úhlů mezi osami (116,565 °, 116,565 °, 126,87 °).
Tento termín se často používá pro hry se „skutečnou izometrickou“ projekcí, včetně her, které používají trimetrickou projekci ( Fallout , SimCity 4 ), hry, které používají šikmou projekci ( The Legend of Zelda: A Link to the Past , Ultima Online ), např. i hry využívající kombinaci perspektivní projekce a pohledu z ptačí perspektivy ( Torchlight [1] ,, Silent Storm [2] ).
Mezi další příklady her využívajících šikmou projekci patří původní SimCity , EarthBound a Paperboy.
Přestože byly hry s opravdovou 3D grafikou v historii počítačových her již na počátku 70. let, první videohry využívající izometrické promítání ve výše popsaném smyslu se objevily až v 80. letech a byly to arkádové hry.
První použití izometrie ve videohře je Zaxxon [3] [4] , vydaný v lednu 1982. Jednalo se o izometrickou rolovací střílečku, ve které hráč ovládal letadlo. Byl to také jeden z prvních případů zobrazení stínů ve hrách.
Další ranou izometrickou hrou je Q*bert , kterou začali psát Warren Davis a Jeff Lee v dubnu 1982 a vydali ji v říjnu/listopadu 1982. Hra obsahovala statickou izometrickou pyramidu, na kterou musel hráč skákat.
V roce 1983 byla vydána izometrická platformová arkádová hra Kongo-Bongo běžící na stejném hardwaru jako Zaxxon. Hráč se mohl pohybovat po velkých izometrických úrovních, včetně pohybu nahoru a dolů po ose Z. Totéž bylo možné v arkádové hře Marble Madness z roku 1984 .
Během této doby již izometrické hry nebyly výhradně pro arkády a na domácí počítače se dostaly s vydáním Ant Attack pro ZX Spectrum v roce 1983. Hráč se mohl pohybovat jakýmkoli směrem a na rozdíl od Zaxxonu nabízel naprostou svobodu pohybu. Pohled mohl být také otočen o 90 stupňů kolem své osy. Časopis ZX Crash ji ocenil 100 % v grafice [5] .
O rok později se zrodila nová hra pro ZX Spectrum - Knight Lore , která definovala žánr izometrických her na léta dopředu. Tato hra zplodila mnoho klonů pro domácí počítače. Mezi další příklady z těchto let patří Highway Encounter (1985), Batman (1986), Head Over Heels (1987) a La Abadía del Crimen (1987). Izometrie se v těch letech neomezovala jen na arkády – existuje například strategická hra Populous v roce 1987.
Během devadesátých let se objevují některé velmi úspěšné hry využívající pevnou izometrickou perspektivu, jako je Civilizace II , Diablo a Fallout . Ale s příchodem 3D akcelerátorů v osobních počítačích a herních konzolách se hry, které dříve využívaly 2D perspektivu, začaly obracet k 3D. Tento trend je vidět i u nástupců výše zmíněných her: například Civilizace IV a Diablo III využívají opravdové 3D. Zatímco Diablo II používalo pevnou perspektivu jako jeho předchůdce, navíc umožňovalo škálování skřítků, aby získalo 3D efekt [6] .
Během devadesátých let se izometrická grafika začala používat v počítačových hrách na hrdiny , zejména v taktických hrách na hrdiny, z nichž mnohé dodnes používají izometrickou grafiku. Koncem 90. let hry jako Vandal Hearts (1996), Final Fantasy Tactics (1997) a Breath of Fire III (1997) používaly 3D grafiku k vytvoření izometrického pohledu, ve kterém mohl hráč volně otáčet kamerou.
Jedním z nejčastějších problémů s programováním her, které využívají izometrické (neboli dimetrické) promítání, je vazba souřadnic na rovině obrazovky se souřadnicemi skutečného umístění objektu v izometrickém prostoru.
Typickým příkladem je definice dlaždice pod kurzorem. Jednou z metod, jak toho dosáhnout, je použití stejných rotačních matic, které definovaly izometrický pohled. Potom vydělením hodnot x a y šířkou a výškou dlaždice a zaokrouhlením dolů na nejbližší menší hodnotu můžeme získat souřadnice x a y v izometrickém prostoru.
Další způsob, který je méně výpočetně náročný a funguje, pokud se metoda nazývá každý snímek, je založen na předpokladu, že máme čtvercovou síť, která byla otočena o 45 stupňů a poté zmenšena na polovinu, jak je popsáno výše. Nejprve jsou souřadnice dlaždice nalezeny na virtuální mřížce (jejíž čáry jsou rovnoběžné s okrajem obrazovky), kterou nazýváme virtuální x a virtuální y. Jak vidíte, souřadnice dlaždic virtuální mřížky na středové ose se shodují se souřadnicemi dlaždic na středové ose izometrického prostoru.
Virtuální dlaždice mřížky ležící o jednu pozici napravo od středové čáry bude odpovídat izometrickému dlaždici prostoru ležícímu o pozici méně na ose y (ve srovnání s jeho virtuálním protějškem). Můžete odvodit vzorec, který vypočítá souřadnici y dlaždice v izometrickém prostoru, přičemž od virtuálního y se odečte rozdíl mezi virtuálním x středové čáry a virtuálním x požadované dlaždice.
Příklad kódu v C (za předpokladu, že proměnné mají správné hodnoty):
float virtualTileX = screenx / virtualTileWidth ; float virtualTileY = screeny / virtualTileHeight ; // Některé zobrazovací systémy mají počátek vlevo dole a dlaždici na mapě vlevo nahoře, takže musíme převrátit y float inverseTileY = numberOfTilesInY - virtualTileY ; float isoTileX = inverseTileY + ( virtualTileX - numberOfTilesInX / 2 ); float isoTileY = inverseTileY - ( virtualTileY - numberOfTilesInY / 2 );Dlaždice na virtuální mřížce bude obsahovat více než jednu izometrickou dlaždici a v závislosti na tom, kde je stisknuto tlačítko myši, by měla být mapována na příslušné souřadnice. Klíčem k této metodě je, že virtuální souřadnice jsou čísla s plovoucí desetinnou čárkou, nikoli celá čísla. Virtuální x a y může být například (3,5, 3,5), což znamená střed třetí dlaždice.