Primjena Unreal Enginea i render proces

Zašto se kod video igara u pravom vremenu rendera, a u videu samo jednom?


Napredak računalne grafike u proteklih deset godina je uistinu impresivan, no još uvijek nismo dostigli razinu foto realizma gdje bi ljudsko oko teško prepoznalo da li je nešto stvarnost ili virtualno. Razlog tome nije nedostatak ljudske vještine već osnovne snage računala – procesora i grafičke kartice.

Uzmimo kao primjer animirani 3d video. Kako bi se taj video napravio, potrebno je napraviti 3d modele objekata koji se nalaze u sceni, te potom animirati „actore“ , to jest objekte nad kojim ili koji vrši interakciju u sceni. Nakon toga se postavljaju ostali parametri poput svijetla, atmosfere te se kreće u proces zvan render (render hrv. - precrtavanje ).

Render je proces u kojem najveću ulogu igra procesor i grafička kartica. Svi objekti koje smo postavili u sceni imaju svoja svojstva koja je potrebno svake sličice iskalkulirati i grafički prikazati.

Na primjer, sunce koje obasjava stakleni stol stvara refleksije u interijeru, pa kako se scena ili kamera kreće, potrebno je svaki put izračunati kako i gdje padaju zrake sunca.
Da bi pak dobili dojam kolika je kalkulacija potrebna, objasnit ćemo kako se na vašem ekranu pokazuje sama slika. Vaš ekran se sastoji od pixel-a koji imaju svoje varijacije boja( npr.RGB, crvena,zelena i plava, osnovne boje pixel-a). Današnji standard jest 1080p ( 1920 x 1080 pixela-a) što znači da se na vašem ekranu nalazi 2,073,600 pixela.
Ako tome pridodamo 32bitnu varijaciju boja, dobivamo podatak da se svaka naša slika sastoji od 66,355,200 bitova koje procesor i grafička kartica moraju obraditi


Kako je za video format potrebno mimimalno 24 slika u sekundi, broj bitova sve više i više raste.
Što više slika u sekundi to sam video postaje kompleksniji i teži.
Render proces uzima sve podatke iz trenutne scene , kalkulira i pokazuje na ekranu. Sam render proces se sastoji od matematičkih linija kodova ( frakcije, jednadžbe itd.) koje obavlja procesor ( CPU ) , te da bi render bio brži, potrebno je sve te jednadžbe i frakcije napisati i razložiti u što jednostavniji oblik kako bi sam procesor brže rješavao matematičke zadatke.

Razlika između videa i video igre jest što za video morate samo jednom render-ati i to se sprema u određeni format ( .mp4, .mov, .avi, h.264, itd.) i pušta se u video prikazivaču te kompjuter nije više opterećen svim kalkulacijskim zadacima nego samo čitanjem podataka koji su unaprijed definirani i komprimirani u video format.

Kod video igara se događa takozvani real-time render, što znači da svaki put kad se pokrene video igra, procesor i grafička moraju raditi svim snagama da iskalkuriraju sve matematičke zadatke za svaku sličicu u pravom vremenu.

Zašto se kod video igara u pravom vremenu rendera, a u videu samo jednom? Zbog toga što su video igre interaktivne za razliku od videa. To znači da igrač ima slobodu upravljati kamerom ili scenom, te sam određuje što će i kako gledati. Računalo tada mora u stvarnom vremenu ponovo iscrtavati svaku sliku koju igrač vidi.

Zato možemo biti sretni što postoje programi poput Unreal Engine-a koji su investirali godine, novaca i truda kako bi cijeli ovaj vrlo kompleksni proces čim više optimizirali. Snaga tog programa omogućila je i ostalim industrijama da iskoriste interaktivne prikaze u svojem poslu: od brodogradnje, arhitekture, filma, pa čak i medicine! 

Unreal Engine tečaj: pogledaj ovdje