Cosa sono e differenza tra computer grafica e CGI (Immagine Generata al Computer)

Cosa sono e differenza tra computer grafica e CGI (Immagine Generata al Computer)

Computer grafica e CGI

Oggi la computer grafica (in inglese Computer graphics) è una parte centrale delle nostre vite, nei film, videogiochi, design, realtà virtuale e tutto ciò che riguarda l’immagine partendo dalla creazione, passando al salvataggio e manipolazione di un tipo di informazione che rappresenta l’immagine che si sta trattando con l’aiuto di hardware e software specializzati che impiegano algoritmi e strutture di dati che si basano nelle scienze della geometria, ottica e fisica.

Le tecnologie che si occupano della rappresentazione e manipolazione di dati che si traducono in un’immagine, eppure l’acquisizione di essi dati dal mondo fisico fanno parte della computer grafica, che come termine è molto diffuso e generale, ed è per questo che tra le diverse discipline della computer grafica spunta una in particolare: la CGI (sigla in inglese oppure Immagine Generata al Computer) che si occupa della grafica 3D e 2D utilizzata nell’arte e nella produzione di effetti speciali nel cinema e la televisione, anche perché in certe situazioni che ci vuole una determinata ambientazione, oppure la ricostruzione di scenografie, l’affitto di vestiti che richiedono un certo numero di persone e ad un certo punto diventa più abbordabile a livello di budget usare la CGI, ma non solo per i motivi citati prima, anche perché capita spesso che sia importante raggiungere una resa de un certo tipo che si può solo fare con l’aiuto della CGI. E non finisce qui, con la tecnologia che migliora e diventa più accessibile certe produzioni impiegano la CGI per risolvere problemi di logistica, invece che per creare esplosioni o creature fantastiche per risparmiare tempo e denaro

L’evoluzione della CGI avviene grazie alla nascita di due grandi industrie che sono i videogiochi ed il cinema, che col passare degli anni hanno contribuito allo sviluppo di algoritmi, software e hardware e hanno reso più accessibili queste tecnologie ad artisti individuali, freelance del settore e piccoli studi per produrre film, videogiochi e installazioni artistiche da computer ad un costo non molto alto per ottenere una resa più realistica di volta in volta partendo da piccoli inserimenti in film alla creazione di personaggi totalmente generati in computer in lungometraggi fatti interamente in CGI.

Cosa sono e differenza tra computer grafica e CGI (Immagine Generata al Computer)

Fotorealismo in CGI

Con la tecnologia che avanza, processori, schede grafiche e software di rendering più potenti si può raggiungere un livello di rendering fotorealistico che col tempo può solo migliorare semplificando e velocizzando il lavoro ai professionisti dell’industria del cinema dando più soluzioni e alternative per abbassare costi di produzione. Tutto ciò avviene grazie alla matematica, con i fondamenti di geometria, le coordinate 3D, i vettori e le matrici, le operazioni vengono eseguite con linguaggi di programmazione che permettono i computer di interpretarli.

L’approccio più semplice per creare una grafica 3D è partire da 3 punti nello spazio tridimensionale ovviamente che definiscono un triangolo che in CGI è il poligono più utile per la sua semplicità e comodità. Nel mondo reale un triangolo fatto di carta diffonde i raggi di luce che lo colpiscono in un’infinità di direzioni, operazione che per un computer va aldilà delle sue capacità soprattutto se parliamo dei computer negli anni 1960 quando i primi scienziati informatici si chiesero per un metodo per svolgere questi calcoli.

Rasterizzazione

La premessa è stata: non tenere in considerazione tutti i raggi che colpiscono il triangolo ma una certa quantità limitata, e per fare così fu inserita una camera nello spazio 3D, cioè un punto di prospettiva, e di fronte a quel punto venne inserita una griglia dove ogni cella rappresenta un pixel dell’immagine finale renderizzata.

Dunque invece di disegnare un’infinità di raggi di luce per ogni vertice del triangolo, si disegna solo un raggio che interseca col punto di prospettiva della camera, dove questi raggi che intersecano sarebbero i bordi del triangolo in questione dal punto di vista della camera, e così riducendo il calcolo solo a quella porzione della griglia dove i tre punti si intersecano, il computer calcolerà in ogni pixel di quella regione se questo viene intersecato per i raggi, se è così saranno assegnate le proprietà dei materiali e shaders dell’oggetto , altrimenti si lascia vuoto e così il triangolo 3D sarà visibile in due dimensione rasterizzato.

Questo processo di proiezione e rasterizzazione fu oggetto di ricerca per i scienziati specializzati in computer grafica negli anni 1970 e fa ancora parte della pipeline dell GPU che si basano su OpenGL e DirectX per il gaming moderno ma ovviamente molto più sofisticata.

Ray casting

L’alternativa al metodo precedente è il Ray Casting, che a differenza della rasterizzazione era considerato più farraginoso quando fu presentato in un paper da Arthur Appel chi lavorava per l’IMB in 1968.

Siccome la rasterizzazione è un processo oggetto-centrico cioè che i raggi vengono disegnati dall’oggetto alla camera, il Ray Casting è immagine-centrico, cioè che i raggi d’interesse saranno quelli che escono dalla camera e colpiscono l’oggetto, puntando un raggio per ogni cella della griglia e calcolando se ogni raggio di questi colpisce l’oggetto in questione nello spazio tridimensionale, e calcolare ogni volta che si intersecano. Se a questo spazio 3D si aggiunge un altro triangolo, se calcolerà solo l’intersezione più vicina tra i due, creando un problema di profondità già che non era possibile calcolarla, questo si presentava con la rasterizzazione e solo dopo quando si è inserita la tecnica che richiama un buffer nell’asse Z (Z-buffer) che crea una mappa di profondità cosa che col Ray Casting veniva risolto da subito questo problema di visibilità già che la matematica per calcolare intersezioni tra poligoni e raggi è molto semplice in molti casi in particolare per i triangoli.

Il problema di questa tecnica, era che si doveva verificare per ogni singolo raggio di luce (ogni pixel) se c’era una intersezione con ogni oggetto nello spazio, per esempio, se un’immagine di 1000×1000 pixel avrebbe da verificare

1 Milione di raggi da verificare per un oggetto di 1000 poligoni (che è un numero basso di poligoni), quindi il computer dovrebbe calcolare 1 Milioni di raggi per 1000 poligoni. Ci sono metodi e strategie per abbassare il carico di lavoro, ma rimangono ancora tante operazioni da realizzare. Per questo motivo la tecnica Ray Casting fu ignorata per gran parte degli anni 70′.

Ray tracing

La rasterizzazione rimaneva quella più accessibile ma sempre con 3 grandi debolezze: simulare bene le ombre, le riflessioni e le rifrazioni. La soluzione era tornare a utilizzare il Ray Casting e aggiungere qualche variante, ma questa modifica andrebbe ad aggiungere ancora più carico computazionale.

Nell’anno 1980 Turner Whitted pubblicò un articolo alla SIGGRAPH titolato “An improved illumination model for a shaded display” in cui risolse il problema delle simulazioni di ombre, rifrazioni e riflessioni usando la tecnica del Ray Cast ricorsivo che usava i primi raggi che partivano dalla camera fino ad scontrarsi con gli oggetti, quando questi raggi toccavano gli oggetti, e per risolvere la questione delle ombre si disegnava un secondo raggio o “shadow ray” in direzione verso la posizione della luce nella scena e se non ci sono oggetti tra la fonte di luce e l’oggetto colpito, si dice che è illuminato in modo diretto che vuol dire colorare quel pixel e aggiungere informazione di specularità e riflessioni generati per quella fonte di luce se invece il raggio di luce si incontra con alcun oggetto che sia tra la superficie di quell’oggetto in questione e la fonte di luce, allora quel pixel verrà colorato solo con la luce ambiente.

Se l’oggetto è riflettente si disegna un raggio di riflessione con un angolo di incidenza e si vede dove arriva quel raggio, e l’informazione di questo raggio di riflessione cambierà il modo in cui si colorerà il pixel, invece se questo raggio incontra un altro oggetto, si disegneranno altri due raggi di riflessioni che partono dalla nuova intersezione fino ad arrivare alla fonte di luce.

Il processo è similare quando l’oggetto è trasparente a differenza che invece di usare l’angolo di incidenza, si usa l’angolo di rifrazione dell’oggetto, e per questo la tecnica viene denominata Ray Tracing Ricorsiva.

Il primo render realizzato con questa tecnica fu di una risoluzione di 512×512, e ci sono voluti 74 minuti, e questo portò un grande avanzamento nelle tecnologie di computer grafica consolidando le basi per i render fotorealistici, e a differenza della rasterizzazione, il Ray Tracing si impiega per simulare il comportamento reale della luce e come questa rimbalza nel mondo reale, anche se al momento non era perfetto, per la mancanza di potenza computazionale. Il prossimo passo per la computer grafica era simulare perfettamente il comportamento della luce del mondo reale e le sue leggi.

Rendering fotorealistico

L’importanza del fotorealismo radica nella riduzione di costi nelle produzioni, raccontare storie che i registi altrimenti non riuscirebbero a realizzare, e non solo nel cinema ma nell’architettura che insieme alla VR si fondono per dare vita a qualcosa che oggi si chiamano “walkthrough” in tempo reale in ambienti 3D usando motori di rendering come Unreal Engine e la tendenza è che la CGI sta superando il mondo reale e tutto grazie alla resa fotorealistica che è il topico più ambito tra i CGI artists.

Il fotorealismo si basa in quattro principi: La modellazione che sono i fondamenti, i materiali, l’illuminazione e il post-processing che è replica gli effetti di una camera vera.

Tra queste quattro categorie, i materiali e l’illuminazione sono quelle due in cui l’artista lascia il suo marchio e può esprimersi con le varie conoscenze dei diversi software usati e che non può prendere con leggerezza a differenza della modellazione in cui è possibile trovare modelli non eccellenti e lavorarci con in materiali e la luce per migliorare la resa fotorealistica.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *