3D prostredia (Vizuálne efekty)

3D prostredie je digitálne vytvorený trojrozmerný virtuálny priestor. Ide o komplexnú scénu vytvorenú pomocou 3D modelovania, textúrovania, svietenia a renderovania, ktorá môže predstavovať napríklad krajinu, mesto, interiér budovy, vesmírne prostredie alebo fantazijný svet.

3D prostredia nachádzajú využitie primárne vo filmovom priemysle pri tvorbe vizuálnych efektov(VFX), kde sa používajú ako "set extension" (doplnenie alebo rozšírenie scény) alebo ako kompletne digitálna scéna. Využitie taktiež nachádzajú v hernom priemysle, kde predstavujú interaktívny herný svet, v ktorom sa hráč pohybuje.
stred|náhľad|3D prostredie

 Tvorba 3D prostredí 

 Referencie, Concept a Blockout 
Prvým krokom pri tvorbe 3D prostredí je zhromaždenie referencií, ktoré podporujú príbeh, ktorý chceme povedať. Referencie sa dajú získať z viacerých zdrojov či už sú to obrázky napríklad z internetu, časopisov a kníh alebo napríklad vlastné kresby a fotografie . Zo začiatku by sme mali získať čo najviac referencií a následne by mali prejsť selekciou, vyradiť tie, ktoré sa nám nehodia a ponechať len tie “najlepšie”. Je dôležité tieto referencie nielen zhromaždiť ale správne kategorizovať. Napríklad referencie pre celkovú náladu, architektúru, kompozíciu, svietenie, tvary objektov. Referencie sú najmä dôležité najme pri fotorealizme kde je potrebné vytvoriť niečo čo je nerozoznateľné od reality. Veľakrát sa môže zdať že si niečo pamätáme ale až neskôr zistíme že obrázok v našej hlave nezodpovedá realite.

Po zhromaždení referencií nasleduje tvorbe konceptu, ktorou je zvyčajne poverený špecializovaný človek “concept artist”. Koncepty sa väčšinou tvoria ako 2D digitálne maľby avšak čoraz viac sa už pri ich tvorbe implementuje 3D grafika. Najskôr sa vymodeluje jednoduchá scéna so správnymi rozmermi, ktorú sa následne maľuje a keďže už má obrázok správnu perspektívu, concept artista môže tráviť viac času nad vytváraním nálady a dizajnom ako nad riešením technických problémov. Cieľom nie je aby finálny obrázok vyzeral “pekne” ale aby predával myšlienku, náladu a jednotlivé nápady čo najefektívnejšie. Pri dizajnovaní prostredia by sme mali vytvárať emocionálne prepojenia a nachádzať odpovede na otázky ako toto prostredie ovplyvňuje postavy, ktoré tu žijú alebo naopak ako tieto postavy ovplyvňujú toto prostredie, prečo tam sú, akú históriu má tento priestor a ako sa dostal do podoby v akej ho momentálne vidíme. Jednoducho povedané mali by sme dávať jednotlivým “objektom” dávať dramaturgický význam. Dobrým príkladom je napríklad film Dune (2021), kde je celý život na púštnej planéte s nedostatkom vody prispôsobený tomuto drsnému prostrediu za cieľom získať z nej vzácne suroviny. Budovy majú hrubé steny, ktoré majú obrániť mesto pred piesočnými búrkami a teplom, ľudia nosia obleky, ktoré udržujú všetku vodu a zas naopak ľudia túto planétu ničia a znečisťujú ťažbou surovín.

Jednotlivé vzťahy sa dajú zobraziť a podporiť základnými vizuálnymi komponentami:

● Priestor – Rozdiel medzi priestorom na obrazovke (2D) a “reálnym” priestorom (3D). Pri dizajnovaní prostredí síce vytvárame 3D priestor avšak mali by sme brať do úvahy ako sa divák bude na toto prostredie pozerať.

● Línia a tvar – Pomocou línií, ktoré niekam smerujú môžeme oko diváka niekam nasmerovať a zároveň vytvoriť vzťah medzi týmito objektmi. Línie sa spájajú a vytvárajú tvary(základné – kruh, štvorec, trojuholník). Pokiaľ celé prostredie vyskladáme napríklad z trojuholníkov bude pôsobiť nebezpečne vďaka množstvu ostrých uhlov a pokiaľ z kruhov a kriviek toto prostredie bude naopak pôsobiť bezpečne.

● Tón – “Jas” objektov. Napríklad ľudské oko je zvyčajne priťahované k svetlejším objektom, pomocou jasu teda môžeme na niečo upozorniť a naopak od niečoho ubrať pozornosť.

● Farba – “Odtieň” objektov. Ľudia si zvyčajne spájajú s rôznymi farbami rôzne emócie. Napríklad červená (nebezpečenstvo,vzrušenie) a modrá (stabilita, kľud).

● Pohyb – pomocou objektov, kamery a očí divákov pri sledovaní obrazovky. Pri tvorbe prostredí pohyb objektov a kamery nedokážeme veľmi ovplyvniť(ten majú na zodpovednosť animátori a kameramani), avšak stále je dôležitý pohyb očí divákov, ktorý môžeme ovplyvniť napríklad líniami, tónom alebo rytmusom.

● Rytmus – vizuálny rytmus. Podobne ako v hudbe má tempo, striedanie a opakovanie. Môže to byť napríklad aleja stromov idúca do diaľky.

Pri tvorbe konceptu sa treba zamýšľať nad orientáciou diváka v tomto priestore. Do priestoru by sme mali umiestňovať “orientačné body” - miesta, ktoré sú niečím výnimočné, či už farbou, tvarom, veľkosťou alebo sú nejak významné pre príbeh. Nielenže pomocou “orientačných bodov” upútame divákovu pozornosť tam kam chceme v 2D priestore “obrazovky” ale aj v 3D priestore. Orientačné body sú dôležité najmä pri počítačových hrách kde sa hráč zvyčajne voľne pohybuje v priestore a tým pádom musíme dať pozor aby “nezablúdil”. Napríklad v počítačovej hre Half-Life 2 (2004) slúži ako orientačný bod vysoká budova “Citadela” v ktorej sa odohráva klimax hry. Kdekoľvek v tomto meste sa nachádzame vždy “Citadelu” v pozadí vidíme a tým pádom vieme kde približne sme.

Blockout by sa dal považovať za 3D concept. Cieľom nie je celková nálada ale skôr rozmiestnenie objektov 3D priestore. Ako bolo spomenuté predtým, už pri tvorbe konceptu poprípade animatiku často vznikne jednoduchý blockout, ktorý sa ďalej už len zdokonaľuje. Pri blockoute je dôležité nesústreďovať sa na detaily ale na veľké tvary a kompozíciu. Pri hrách treba taktiež dbať na to aký dopad má rozmiestnenie objektov na “gameplay”, napríklad či je hráč schopný vyskočiť na platformu, ktorá je veľmi vysoko. Modely vytvorené počas tvorby blockoutu zvyčajne nespĺňajú technické a estetické požiadavky(napríklad topológiou, polycountom a celkovo nedostatkom detailov) a preto sa neskôr nahrádzajú detailnejšími modelmi – assety.
stred|náhľad|Blockout(hore) a concept art (dole)

 Assety 
Asset – ťažko definovateľný pojem. Zvyčajne časť obsahu počas produkcie, napríklad charakter, prostredie, objekt, textúra, zvuk a podobne. Assety sa skladajú z ďalších assetov. Napríklad prostredia sa skladajú z modelov, materiálov a textúr. Pojem “Asset” väčšinou odkazuje na kompletný finálny objekt s hotovým modelom, materiálom, textúrami a v prípade počítačových hier aj logikou.

Finálnymi assetmi nahrádzame objekty vytvorené počas blockoutu. Tvorba assetov je jedným z časovo najnáročnejších krokov. Pre potreby 3D prostredí sa výroba assetov dá rozdeliť na modelovanie a textúrovanie:

 Modelovanie 
Proces vytvárania trojrozmernej podoby objektu ako 3D geometrie. Pre potreby 3D grafiky sa modely vytvárajú “polygonálnym modelovaním”. Pri polygonálnom modelovaní sa modely sa skladajú z “polygónov”(mnohouholníky), polygóny z hrán a hrany z “vertices”(body/vrcholy). Zvyčajne sa na túto 3D geometriu odkazuje ako “model” alebo “mesh”. Všeobecne pri modelovaní by sme mali vytvárať objekt v správnej mierke čím predídeme problémom neskôr v produkcii.

Poznáme tieto spôsoby modelovania :

● hard-surface – autá, súčiastky, zbrane, rovné čiary, hladké povrchy, subd modelling, software: 3ds Max, Blender, Maya, CAD softvéry

● organické modelovanie(sculpting) – podobné modelovaniu z hliny. Organické tvary, nerovný povrch. charaktery, zvieratá, príšery, software: Zbrush, Mudbox, Blender

● 3D skenovanie –  Zachytenie objektu v realite do digitálneho 3D priestoru. Existuje viacero spôsobov ako napríklad lidar a fotogrametria. Softvér:napríklad RealityScan, Metashape, Meshroom

 Textúrovanie 
Textúrovanie je  definovanie vlastností povrchu pomocou textúr(obrázkov). Klasicky pred textúrovaním musí model prejsť UV mappingom. UV mapping je proces pri ktorom vytvárame takzvanú UV mapu, ktorá definuje ako sa 3D model má rozložiť do 2D priestoru(textúry sú 2D čiže vlastne definujeme ktorá časť textúry patrí na ktorý polygón). Nie vždy je ale potrebné vytvoriť UV mapu. Napríklad pri procedurálnom textúrovaní definujeme vlastnosti povrchu pomocou matematických funkcií, ktoré dokážu fungovať priamo v 3D priestore. Tento spôsob dokáže ušetriť čas ale často výsledok vyzerá jednoliato a veľakrát je potrebné textúry ručne namaľovať, na čo už je potrebná UV mapa. Existuje viacero spôsobov, či už plne automatických alebo časovo náročných manuálnych. Základným princípom je definovanie miest kde sa model rozpojí aby sa následne mohol rozložiť do 2D priestoru. Taktiež je dôležité dávať pozor na “Texel density”– počet pixelov textúry (texel) na jednotku obsahu (napríklad 100px/m). Samozrejme je dôležité aby texel density bola čo najväčšia, avšak taktiež je dôležité aby všetky objekty v scéne mali texel density podobnú.

Samotné definovanie vlastností povrchu pri PBR shadingu (physically based rendering – fyzikálne založený rendering) pozostáva z vytvárania viacerých textúr, ktoré slúžia ako vstup do shaderu, ktorý vďaka ním počíta interakciu povrchu so svetolom.

Najčastejšie sa pri “PBR metalness workflow” používajú tieto:

● Base Color/Albedo – Priamo farba povrchu.

● Metallic – Definuje, ktoré časti sú kovové a ktoré nie.

● Roughness – Kde je povrch lesklý a kde naopak matný.

● Normal – Smer normálového vektora povrchu(kolmica na povrch), vďaka čomu vieme ovplyvniť shading a pridať detaily, ktoré v samotnom modeli nie sú.

● Height – Výška povrchu, dá sa použiť podobne ako normal mapa kde normálový vektor modifikujeme pomocou skalárnej hodnoty - výšky o koľko je povrch posunutý alebo ako bolo skôr spomenuté priamo ako displacement.

● Opacity – Kde má byť objekt priehľadný.

Existuje viacero softvérov na textúrovanie. Najčastejšie sa využíva Substance Painter vďaka jeho jednoduchosti(podobný princíp ako  vrstvy vo Photoshope), avšak špeciálne pri vizuálnych efektoch je tento softvér niekedy nedostačujúci a preto preto sa pri komplikovanejších projektoch využíva Mari, v ktorom nodový workflow dovoľuje väčšiu flexibilitu.

 Procedurálne nástroje 
K 3D grafike sa všeobecne sa dá pristupovať dvoma spôsobmi: manuálny a procedurálny. Pri manuálnom prístupe prístupe sa napríklad objekty modelujú a textúrujú ručne, a následne taktiež manuálne umiestňujú do prostredia presne tam kde ich chceme. Síce máme maximálnu kontrolu, avšak pri komplikovanejších scénach máme problém v neskorších fázach produkcie urobiť väčšie zmeny. Naopak pri procedurálnom prístupe pomocou matematických funkcií definujeme scénu a teda kedykoľvek môžme nejaký parameter zmeniť a tak ovplyvniť celú scénu aj ráznešími zmenami a zároveň niečo čo už sme raz vytvorili je jednoduchšie znova použiť. Bežne sa procedurálne nástroje napríklad využívajú na rozmiestňovanie vegetácie, skál a objektov, ktoré môžeme bežne nájsť v prírode, podľa viacerých parametrov ako nadmorská výška, sklon svahu, vzdialenosť od vody a podobne. Jednoduchším príkladom je napríklad generátor panelákov, ktorý dovoľuje napríklad zmeniť rozmery paneláku a takžiež náhodne pridáva detaily tak aby každý panelák vyzeral inak. Tento prístup dovoluje jednoduchú úpravu kompozície len zmenou jedného parametru. Pokiaľ by paneláky boli manuálne vymodelované bolo by to podstatne zdĺhavejšie. Treba si však dať pozor aby sme všetko zbytočne neautomatizovali, pokiaľ niečo potrebujeme spraviť iba raz je zbytočné tráviť čas na procedurálnom riešení, ktoré pravdepodobne zabere viac času, ako manuálny prístup. Taktiež keďže všetko je definované matematicky nemáme kontrolu úplne nad všetkým a tým pádom veci takto vytvorené môžu pôsobiť veľmi “rovnako” alebo “bez charakteru”. Procedurálne systémy sú zvyčajne buď naprogramované v nejakom programovacom jazyku(vačšinou Python) alebo vytvorené v nodových systémoch v softvéroch ako Blender alebo Houdini. Tieto nástroje sú väčšinou vytvorené technickejšie zameraným človekom (technical artist) pre ľudí, ktorý riešia umeleckejšiu stránku projektu.

 Skladanie Prostredí 
Zvyčajne po vytvorení blockoutu ide o iterovanie a postupné vymieňanie jednoduchých modelov za kvalitnejšie finálne modely. Pri tomto procese je dobré vedieť ako bude umiestnená kamera a zároveň prostredie nasvietené, aby bolo možné sa sústrediť len na veci, ktoré vo finálnom zábere vidíme. Samozrejme pri reálnej produkcíí tento proces nie je lineárny a môže sa stať že sa kamera aj svetlo ešte zmenia. Avšak ak bola preprodukcia(blockout, concept art) dobre premyslená zmeny by mali byť minimálne. Tak ako pri tvorbe blockoutu je dvôležité aby bol záber/prostredie kompozične vyvážené avšak už sa nesústreďujeme na veľké tvary, ktoré boli vymyslené v concept arte ale skôr na detaily.

Málokedy všetky assety boli vytvorené pre konkrétny projekt či prostredie. Často pre ušetrenie času sa využívajú modely z rôznych internetových knižníc alebo sa recyklujú z predošlých projektov. Tento prístup je efektívny pri fotorealizme, no pokiaľ chceme dosiahnuť špecifikú štylizáciu, assety z rôznych zdrojov nemusia nakoniec pôsobiť koherentne. Ak skladáme prostredie je dobré mať assety, ktoré boli vytvorené či už pre tento projekt alebo nie, usporiadané v knižnici v ktorej ich jednoducho listovať a priamo z nej ich jednoducho importovať do scény. Existuje viacero riešení, je možné použiť priamo nástroje na manažment assetov v 3D programe alebo externú aplikáciu špeciálne na to určenú, no najjednoduchším a zároveň najefektívnejším je prehľadná štruktúra priečinkov na disku. Po technickej stránke je dôležité dávať pozor na optimalizáciu(špeciálne pri počítačových hrách). Všeobecne treba pridávať detaily len tam kde ich vidno(napríklad do popredia, tam kde je upriamená pozornosť diváka…). Taktiež môže pomôcť instancing. Pokiaľ máme nejaký kameň ktorý sa v scéne opakuje veľakrát, nie je potrebné aby v pamäti zaberali miesto dáta o geometrií každého z nich keďže sú rovnaké. Pokiaľ sú tieto kamene rozmiestnené ako inštancie v pamäti máme dáta geometrie len jedného kameňa a každý z nich ich používa. Používanie inštancií má veľký dopad najmä pri veľkých a komplikovaných scénach, avšak aj v menších scénach dokáže uľahčiť tvorbu keďže stačí upraviť jeden a zmenia sa všetky kamene. Optimalizovať prostredie môžeme aj použitím tilovacích textúr, ktoré na seba nadväzujú a dajú sa použiť niekoľkokrát bez toho aby sme spoznali repetitívnosť(častokrát však nestačia keďže kvoli tomu aby boli tilovacie, vyzerajú jednoliato, a tak treba pridať variáciu v shadery). Napríkad pri asfaltovej ceste stačí použiť jednu textúru s menším rozlíšením ktorá sa viackrát opakuje.

 Rozdiely medzi filmovým a herným priemyslom 

 Kamera 
Vo filme častokrát celé prostredie vidíme len z pohľadu kamery ktorej pozíciu ako divák zmeniť nemôžeme. Preto vo filme sú prostredia zvyčajne vytvorené tak, aby vyzerali “dobre” len z pohľadu kamery - podobné napríklad tradičnej kresbe a maľbe. V hrách kde sa hráč môže pozrieť kdekoľvek chce, je preto potrebné rozmýšľať o prostrediach viac trojdimenzionálne a prostredie musí vyzerať dobre z každého uhla.

 Optimalizácia 
Hry musia bežať v reálnom čase, a tak je väčšia potreba objekty optimalizovať a všeobecne zjednodušovať. Avšak s narastajúcim výpočtovým výkonom a vývojom softvéru sa film a hry po technickej stránke čoraz viac podobajú, veľakrát sa podobné postupy používajú aj pri VFX avšak nie vždy je to až tak potrebné.

Pri VFX sa optimalizuje hlavne scéna vo viewporte aby sme počas práce mali responzívny náhľad, napríklad pri animácií(objekty ktoré nepotrebujeme sa vypnú, vypne sa teselácia, alebo sa vo viewporte použijú zjednodušené verzie objektov).

Všeobecne v počítačových hrách majú objekty menej polygónov a menšie rozlíšenie textúr, preto je dôležité aby boli modely optimalizované. Taktiež sa využíva “culling” – dynamické vypnutie nepotrebných objektov alebo redukcia geometrie tam kde ju netreba.

Existuje viacero variánt:

● Occlusion culling – vypnutie objektov ktoré sú skryté za inými objektmi

● Frustum culling – vypnutie objektov ktoré sú mimo zorného poľa kamery

● Depth culling – je potrebné vytvoriť viacero variánt objektov s rôznymi úrovňami detailov (LOD – level of detail). Podľa vzdialenosti od kamery sa postupne prepínajú objekty od najdetalnejšieho po najmenej detailný. Najmodernejšou technológiou je systém “Nanite” v Unreal Engine. Ide vlastne o automatickú decimáciu v realnom čase, čiže nie je potrebné vytvárať LOD.

● Back-face culling – zabezpečuje aby sa nerenderovali polygóny ktorých normálový vektor smeruje od kamery(nerenderuje sa zadná strana)

 Interaktivita 
Prostredia v hrách sú zvyčajne interaktívne a nejak reagujú na hráča. Preto musia byť nielen vizuálne zaujímavé ale zároveň fungovať “gameplayovo”. Dobrým príkladom sú puzzle hry ako napríklad Portal. Po technickej stránke treba pri hrách taktiež vytvoriť napríklad collision mesh pre každý objekt s ktorým hráč interaguje. Samotný asset v hernom priemysle je podstatne komplikovanejší pretože okrem “vizuálu” so sebou nesie logiku.