Developedia
Developedia
A képalkotás alapfogalmai

A képalkotás alapfogalmai

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.

icon
Pixel / Képpont

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.

icon
A vörös, zöld és kék színű fények kombinációja el tudja hitetni az érzékeinkkel, hogy az bármilyen színű fény. A szemünkben lévő fény-receptorok ugyanis erre a három színre érzékenyek.

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ásFé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.

Közeli fotó LCD képernyőről: Egy
Közeli fotó LCD képernyőről: Egy vörös, egy zöld és egy kék színű lámpa együtt egy pixelt határoz meg.

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.

icon
Rendering / Renderelés / Képszintézis

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.

image

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ákRenderelési stratégiák fejezet foglalkozik.

icon
FPS: Frames Per Second / Képfrissítés sebessége

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.

icon
Gondoljunk bele, hogy egy színes (3 csatornás: RGB), Full HD (1920×1080), 60 FPS képhez több, mint 360 millió független számértéket (3×1920×1080×60) kell a számítógépnek előállítani minden másodpercben folyamatosan.

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.

Logo

Főoldal

Blog

Elmélet

3D Studio

Adatvédelmi nyilatkozat

GY.I.K.

Házirend

Szerző: Marosi Csaba / marosi.csaba@3d-studio.hu

DiscordGitHubLinkedIn