Vizsgáljuk meg, mi történik, amikor a számítógép képet készít a játékokból.
Pixelek
Ha sok apró színes pontot közel egymás mellé teszünk, a szemünk bizonyos távolságból, nem fogja tudni megmondani, hogy külön pontokat lát. Egységes felületnek, objektumnak fog hatni a pontok sokasága. A látás ezen tulajdonságát használja ki a számítógépes grafika, amiben a különböző képpontokat, pixeleknek nevezzük. Bár egy pixel csak egy színt jelenít meg, olyan aprók és közeliek egymáshoz, hogy nagy számban egységes képpé olvadnak össze.
A pixel- vagy rasztergrafikus kép egy négyzetrács, amelyen belül minden négyzet (ritkább esetben téglalap) egy színt vesz fel.
Ezen egy négyzetét a négyzetrácsnak képpontnak vagy pixelnek hívjuk.
A pixelgrafikus kép rendelkezik felbontással, ami azt adja meg, hogy vízszintes és függőleges tengely mentén hány pixelből áll egy kép.
A leggyakoribb felbontások közé tartoznak a következők
- HD - 1280 × 720
- Full HD - 1920 × 1080
- 4K UHD - 3840 × 2160 (Full HD duplája mindkét tengely mentén)
- 8K UHD - 7680 × 4320 (4K UHD duplája mindkét tengely mentén)
A TV-k, monitorok és projektorok, mind egy pixelgrafikus képet jelenítenek meg.
Egy pixel egy tetszőleges színt jelenít meg. Ezt a színt technológiától függően különböző módon állítja elő a monitor, vagy projektor. Leggyakoribb azonban, hogy ezen pixel sem egy színből áll össze.
Egy LCD vagy régi CRT (katódsugárcsöves) monitorban például minden egyes pixel 3 féle színt tud kibocsátani, 3 külön apró fényforrásocskából.
🔴 Red - Vörös
🟢 Green - Zöld
🔵 Blue - Blue
Ezen színekből kibocsátott fények kombinációjából minden kikeverhető, amit az emberi szem lát.
Azt, hogy egy fénynek mi a színe, azt a hullámhossza határozza meg.
Ha látunk egy sárga taxit, akkor arról a sárgának megfelelő hullámhosszú fény érkezik a szemünkbe. Viszont, ha egy monitoron látunk képet egy taxiról, akkor bár az a fenti 3 színből lett kikeverve, a szemünk mégis sárgának érzékeli.
Bővebben: Fény és az emberi látás
Tehát egy Full HD monitoron például 1920 × 1080 × 3 (kb. 6 millió) apró “lámpa” van. Minden pixelhez egy a vörös, zöld és kék színekből.
Az hogy ezen lámpácskák mindegyike milyen intenzitással világít, azt a számítógép számolja ki. Tehát egyetlen képkocka elkészítéséhez annyi önálló számértéket kell kiszámolnia a számítógépnek, mint ahány apró lámpácska van. (A Full HD példánkban ez kb. 6 millió volt).
A számítógép ezen számértékeket a memória egy speciális területére, a rasztertárba írja, amiből a monitor vagy projektor másodpercenként több tucatszor kiolvassa a megjelenítendő színeket.
Renderelés / Rendering
Sokféle képet meg lehet így jeleníteni, például egy fotót, amit egy digitális fényképezővel készítettünk. Emellett virtuális világokat is át tudunk alakítani pixelgrafikus képpé. Erre példa lehet egy 3D-s animációs film vagy videojáték.
Ehhez szükségünk van egy virtuális kamerára, ami ezt a virtuális teret, képes “lefotózni”. Ezután egy komplex algoritmus felel azért, hogy ez a kamera elkészítsen egy pixelgrafikus képkockát. Ezt az algoritmust nevezzük renderelésnek.
Azt a folyamatot, amikor egy számítógépes modellről vagy jelenetről egy virtuális kamera pixelgrafikus vagy más néven rasztergrafikus képet készít, renderelésnek vagy képszintézisnek nevezzük.
Ha a képeket folytonosan meg is jelenítjük gyors egymásutánban, akár egy filmet, valós idejű vagy “real-time” renderelésről beszélünk.
Számtalan megoldás létezik, arra, hogy hogyan is végezzük el a renderelést. Ahogy a számítástechnika fejlődik, úgy a valós és nem valós idejű képszintézis módszerei is folyamatosan változnak. Ez a mai napig egy aktív kutatási terület.
Valós idejű renderelés/ Real Time Rendering
A játékmotorok feladata többek között a real-time, azaz valós időben történő renderelés. Erre mi a Unity-t fogjuk használni. Azt, hogy a real time renderer milyen sebességgel készít képet, azt az FPS írja le.
Bővebben arról, hogyan is történik ezen pixelgrafikus kép előállítása a Renderelési stratégiák fejezet foglalkozik.
Annak a mértékegység nélküli mérőszáma, hogy egy másodperc alatt, hány teljes pixelgrafikus vagy más néven rasztergrafikus kép renderelése készült el.
Egy real-time render engine-nek a modern elvárások szerint másodpercenként legalább 60-szor valami módon egy pixel-grafikus képet kell gyártani a virtuális világból. Mára az elvárt FPS szám gyakran inkább a 120-es vagy 240-es szám körül mozog, ezzel súrolva már az emberi szem érzékelési határát.
Egy virtuális világ nagy mennyiségű adatból épül fel, az információk amik leírják a teret és minden egyebet ami a megjelenítéshez szükséges gyakran gigabájtos nagyságrendűek.
A számítási mennyiség, amit a számítógépünk végrehajt, hogy mi játszani tudjunk elképzelhetetlenül magas. Az hogy ezt a hardver és a rajta futó szoftverek lehetségessé teszik, arra nehéz más megfelelő szót találni, mint a műszaki és mérnöki csoda.