**Videomängu isomeetriline graafika** on graafikaliik, mida kasutatakse videomängudes ja pikslipõhises kunstis, milles vaateväli on sellise nurga all, mis näitab keskkonnas tahke, mis pealtvaate või külgvaate perspektiivis muidu nähtavad ei oleks, jättes sedasi objektidest kolmedimensioonilise mulje.

Vaatamata nimetusele ei ole isomeetriline arvutigraafika päris isomeetriline, st *x*-, *y*- ja *z*-teljed ei ole ilmtingimata teineteise suhtes 120° nurga all. Selle asemel kasutatakse erisuurusi nurki. Dimeetriline projektsioon, üks paralleelprojektsiooni vorme, milles pikslid on suhtega 2:1, on kõige tüüpilisem. Mõisted 3/4 perspektiiv, 2.5D ja pseudo-3D on mõnikord samuti kasutuses, kuigi need mõisted võivad muudes kontekstides omada teistsugust tähendust.

Isomeetrilise projektsiooni populaarsus hääbus, kui kasutusele tulid võimsamad 3D-graafikasüsteemid ning mängudes hakati panema rohkem rõhku sündmustele ja individuaalsetele tegelastele. Sellegipoolest on isomeetrilist projektsiooni kasutavad mängud viimastel aastatel taas esile kerkinud, eriti portaalis Kickstarter.

Ülevaade
--------

### Eelised

Videomängude ja pikslipõhise kunsti valdkondades on see tehnika populaarne tänu asjaolule, et 2D-spraite ja ruutudepõhist graafikat on 3D-keskkonna simuleerimiseks kergem teha. Kuna paralleelselt projitseeritud objektid ei muuda mänguväljal liikudes enda suurust, siis ei ole arvutil vaja spraite skaleerida ega teostada visuaalse perspektiivi simuleerimiseks keerukaid arvutusi. See võimaldas vanematel 8-bitistel ja 16-bitistel mängusüsteemidel (ja hilisemal ajal ka käeshoitavatel ja kaasaskantavatel süsteemidel) kujutada kolmemõõtmelisi alasid kiiresti ja lihtsalt.

Videomängudes isomeetrilise või pseudo-isomeetrilise perspektiivi kasutamisega kaasnevad teatud eelised mängimisel. Näiteks võrrelduna puhtalt pealtvaates mänguga lisavad need kolmanda dimensiooni, avades uusi võimalusi sihtimiseks ja platvormimiseks. Teiseks, võrrelduna ees- või tagantvaates mänguga võimaldab see kergema vaevaga paigutada ja kontrollida suurt arvu tegelasi, näiteks grupp karaktereid mõnes rollimängus. Pealegi leevendab see olukordi, kus mängija tähelepanu hajutavad mängu sisemised mehaanikad, mis hõlmavad 3D-kaamera liigutamist. See tähendab, et mängija saab keskenduda mängule endale ning mitte kaamera liigutamisele ja pööramisele.

Viimaseks on kunstiline eelis. Kuigi need pole rangelt isomeetriliste videomängude pärusmaa, võib eelrenderdatud 2D-graafika omada täpsemat esteetilisust ja kasutada rohkem kõrgema taseme tehnoloogiaid, kui arvutiriistvaral tavaliselt olemas, isegi kui riistvara 3D-kiirendus on sisse lülitatud. Sarnaselt filmides kasutatava CGI-ga saab graafikat võimsal superarvutil või renderipargis renderdada ühe korra ning kuvada väiksema arvutusvõimsusega platvormil nagu tahvelarvutid või veebibrauserid. See tähendab seda, et staatiline eelrenderdatud isomeetriline graafika näeb sageli välja parem kui nende reaalajas renderdatud alternatiiv. Samuti võib selle eluiga olla alternatiivide suhtes pikem. Siiski omab see eelis tänapäeval vähem tähtsust kui ajalooliselt.

Eelrenderdatud graafika üks miinuseid on see, et staatilisi 2D-pilte tuleb kuvaresolutsiooni kasvades ideaalis uuesti renderdada, vastasel juhul hakkavad need pikselduma. See ei ole alati võimalik. Nii juhtus aastal 2012, kui BioWare Baldur's Gate (1998) taasloodi nimega Baldur's Gate: Enhanced Edition stuudio Beamdog poolt. Uus arendaja valis lihtsa 2D graafika skaleerimise või suumimise mängude spraite uuesti renderdamata, kuna need olid mängu algsest kunstimaterjalide varamust puudu (algsed andmed hävisid uputuse käigus). Reaalajas renderdatud mängus on resolutsiooni muutmine võrdlemisi triviaalne.

### Erinevused "tõelise" isomeetrilise projektsiooniga

Videomängudes kasutatav projektsioon erineb teatud määral "tõelisest" isomeetriast rastergraafikas olevate piirangute tõttu. Jooned *x* ja *y* suundadel ei jälgi tihedat pikslite mustrit, kui need joonistatakse horisontaaltelje suhtes nõutud 30° nurga all. Kui moodsamad arvutid kasutavad selle probleemi lahendamiseks silumist, siis varasem arvutigraafika ei omanud piisavalt tuge värvidele ning protsessori arvutusjõudlusest jäi selle saavutamiseks väheks. Selle asemel kasutati *x*- ja *y*-telje joonte jaoks *2:1* pikslite suhet ja tulemuseks oli 35.264° (*{\displaystyle \arctan(0.5)}*) nurk horisontaali suhtes (ruudukujulisi piksleid mittekasutavad mängusüsteemid võisid anda teisi nurki, sealhulgas "tõelist" isomeetriat). Sellepärast on seda tüüpi projektsiooni täpsem kirjeldada kui dimeetrilise projektsiooni variatsiooni, kuna vaid kaks nurka kolmest on teineteise suhtes võrdsetel kaugustel (116.565°, 116.565°, 126.870°).

Ekraani ja maailma koordinaatide kaardistamine
----------------------------------------------

Maailma koordinaatide leidmine
Eri tüüpi graafiliste projektsioonide võrdlus. Ühe või enama 90° nurga olemasolu on sageli hea vihje, et kasutatakse kaldprojektsiooni.
Isomeetrilisi (või pigem dimeetrilisi) projektsioone kasutavate mängude üks põhiprobleeme on 2D-tasandil toimuvate sündmuste kaardistamine sündmuse tegeliku toimumiskoha suhtes isomeetrilises ruumis, teisisõnu maailmaruumis. Klassikaline näide on selle ruudu valimine, mis on hiireklahvi vajutamisel otse kursori all. Üks meetod selle saavutamiseks on kasutada sedasama pööramismaatriksit, mis maailma isomeetrilisse vaatesse arvutas ning teha sellel pöördtehe, leides ekraanil oleva punkti asukoht mängutasandil enne, kui seda teisendati. Järgmisena saab maailmas olevad *x*- ja *y*-väärtused leida ruudu laiuse ja kõrguse jagamise teel.

Leidub ka teine meetod, millega kaasneb vähem arvutusi ning mis võib pakkuda häid tulemusi, kui seda kutsutakse igal kaadril. See eeldab, et ruudukujulist lauda pöörati 45 kraadi ja siis kitsendati seda poolele oma endisest suurusest. Projektsioonile asetatakse diagrammil näidatud viisil peale virtuaalne ruudustik, millel on teljed *virtual-x* ja *virtual-y*. Kui laual oleval keskmisel teljel vajutada suvalisse punkti koordinaadiga (*x*, *y*) = (ruudustikuLaius / 2, *y*), siis tulemuseks on ruudul sama *world-x* ja *world-y* väärtus, mis selles näites on 3 (0 indekseeritud). Valides virtuaalsel ruudustikul ruudu, mis asub ühe koha võrra paremal, muutub *world-y* ühe ruudu võrra vähem ja ühe ruudu võrra rohkem *world-x* puhul. Selline on valem, mis arvutab *world-x* väärtuse, kasutades *virtual-y* väärtust ja lisades sellele laua keskelt *virtual-x*. Samamoodi arvutatakse *world-y* võttes *virtual-y* ja lahutades *virtual-x*. Need mõõtmised arvutatakse keskmiselt teljelt (näidatud pildil), seega tulemusi tuleb tõlgendada poole laua pikkuse suhtes. Näiteks programmeerimiskeeles C näeks see välja nii:

```
float virtualTileX = screenx / virtualTileWidth;
float virtualTileY = screeny / virtualTileHeight;

// mõnel kuvasüsteemil on koordinaadistiku algpunkt all vasakul kui ruudustik ise algab ülevalt vasakult, seega me peame y ümber pöörama
float inverseTileY = numberOfTilesInY - virtualTileY;

float isoTileX = inverseTileY + (virtualTileX - numberOfTilesInX / 2);
float isoTileY = inverseTileY - (virtualTileY - numberOfTilesInY / 2);

```

See meetod võib alguses tunduda ebaintuitiivne, kuna originaalse isomeetrilise maailma koordinaatide asemel kasutatakse virtuaalset koordinaadistikku ning puudub üks-ühele seos virtuaalsete ja isomeetriliste ruutude vahel. Ruudustikul olev ruut võib sisaldada enam kui ühte isomeetrilist ruutu ja olenevalt sellest, kuhu vajutati, peaks see viitama eri koordinaatidele. Selle meetodi iva on selles, et virtuaalsed koordinaadid ei ole mitte täisarvud, vaid ujukomaarvud. *Virtual-x* ja *y* võivad olla ka (3.5, 3.5), mis tähendab kolmanda ruudu keskpunkti. Vasakul oleval diagrammil langeb see kolmandasse ruutu *y*-teljel. Kui *virtual-x* ja *y* liituvad arvuks 4, siis peab ka *world-x* olema 4.

Näited
------

### Dimeetriline projektsioon

* LinCity-NG (2005) on ruutudepõhine linna ehitamise mängLinCity-NG (2005) on ruutudepõhine linna ehitamise mäng
* FreeCol (2003) on 4X strateegiline videomängFreeCol (2003) on 4X strateegiline videomäng

### Kaldprojektsioon

* Micropolis (2008) on ruutudepõhine linna ehitamise mängMicropolis (2008) on ruutudepõhine linna ehitamise mäng
* Ultima VI ruudupalettUltima VI ruudupalett

### Perspektiivprojektsioon

* 0 A.D. (arenduses) on reaalaja videomäng0 A.D. (arenduses) on reaalaja videomäng
* Freeciv-web 3D-WebGL kliendilFreeciv-web 3D-WebGL kliendil
* FO: Alien Invasion 2.4 taktikaline režiimFO: Alien Invasion 2.4 taktikaline režiim

Viited
------

1. 1 2 3 4 5  Signor, Jeremy (19. detsember 2014). "Retronauts: The Continued Relevance of Isometric Games". *usgamer.net*. Gamer Network. Originaali arhiivikoopia seisuga 9.08.2015. Vaadatud 1.04.2017.
2. 1 2  Vas, Gergo (18. märts 2013). "The Best-Looking Isometric Games". *kotaku.com*. Gizmodo Media Group. Vaadatud 1.04.2017.
3. ↑  Vas, Gergo (10. mai 2013). "Video Games With The Most Memorable Pre-Rendered Backgrounds". *Kotaku.com*. Gizmodo Media Group. Vaadatud 1.04.2017.
4. ↑  Grayson, Nathan (1. aprill 2016). "The Struggle To Bring Back Baldur's Gate After 17 Years". *Kotaku.com*. Gizmodo Media Group. Vaadatud 11.04.2017. It was a big challenge because all of the Baldur’s Gate original assets like the 3D models that make up these sprites, the 3D models for the levels in the original game, these archives were lost.

Välislingid
-----------

* The classic 8-bit isometric games that tried to break the mould at Eurogamer.com
* The Best-Looking Isometric Games at Kotaku.com
* The Best Isometric Video Games at Kotaku.com