Depth Compositing

Depth e 3D.

Il depth compositing letteralmente vuol dire compositing per profondità. Nel mondo dei vfx, questo tipo di compositing permette una migliore e più semplice integrazione degli elementi 2D nella pipeline 3D scelta.

L’idea è aggiungere un ulteriore canale alle nostre immagini RGBA che permetta di memorizzare informazioni di profondità. In principio e oggi per consuetudine si utilizza la x e la y per identificare un asse in un sistema bidimensionale; la terza dimensione, la z, definisce la profondità di scena. Il depth compositing può prendere anche il nome di z-compositing e generalmente tra artisti vfx il canale z identifica un canale di profondità. Le nostre immagini diventano così RGBAZ.

depth compositing

Depth e Floating Point.

La maggior parte dei programmi di compositig interpreta correttamente questo canale e permette un compositing più facile evitando di utilizzare clipping o black hole nei frame da compositare più lontani. Un canale di z si presenta come un gradiente bianco nero. Più un pixel è bianco, più è vicino alla nostra macchina da presa, più è nero più si allontana. Questo spazio è normalizzato da 0 a 1 e spesso si utilizzano piu di 8 bit per definire meglio le variazioni intermedie. Un’altra tecnica consiste nell’utilizzare frame in floating point dove il valore di intensità di uno dei componenti rgb rappresentà la distanza in unità virtuali dalla camera. Con questo metodo è più facile definire messe a fuoco in post grazie a valori di profondità non normalizzati ma uguali alla reale distanza dalla mdp degli oggetti nella scena virtuale.

Quando si compositano frame completamente virtuali, il depth compositing è molto piu semplice e richiede meno lavoro. Nel caso di compositing su scene preesistenti, si ricorre al rotoscoping. Le montagne, dietro le quali dovranno volare dei jet in cgi, dovranno essere individuate e mappate a un livello di depth giusto: lo sfondo quindi assume una posizione ben precisa dalla mdp e il software sà cosa sta davanti e cosa sta dietro.

Nel prossimo articolo vedremo il multiplane compositing.

 

Formati Immagine

Formati e Compressione.

Ogni immagine che riceviamo o forniamo al cliente ha un formato proprio e ci sono tantissimi formati differenti, ognuno ha pro e contro. E’ molto importante lavorare con i formati giusti, l’esportazione di un file non leggibile da un altro software crea problemi nelle successive fasi di lavorazione e la perdita di tempo è sempre legata a perdita di denaro. Un aspetto importante dei diversi formati è la compressione sui pixel che l’algoritmo di compressione applica. Il tutto si traduce in una perdita di qualità, inaccettabile in caso di successive lavorazioni. Un ulteriore aspetto da considerazire è la grandezza dei file. Spesso la scelta di un formato inadeguato può incrementare notevolemnte le dimensioni di un file ( spazio su disco ) creando non pochi problemi nello sharing ( banda, tempi di scaricamento, cpu più veloce per una rapida decompressione, ecc ). L’importante è ricordare che, se non si hanno mezzi molto potenti, è buona norma ottimizzare il workflow per ridurre i tempi di attesa, i quali sono punti morti in una produzione e portano solo a un dispendio di risorse, in altri termini salute e soldi .Nei prossimi articoli parleremo dei formati e soprattutto vedremo i diversi schemi di compressione. Parleremo anche particolarmente del formato exr e del rapporto tra grafiche e immagini fotografiche professionali.

formati

Nel prossimo articolo vedremo la differenza tra immagini fotografiche e grafiche.

 

Moltiplicare le immagini

Moltiplicazione e Maschere.

Moltiplicare le immagini è un lavoro molto comune per i compositori digitali, due o più immagini possono essere moltiplicate tra loro fondendo pixel in base ad algoritmi matematici. Se consideriamo una immagine Singola e una maschera bianco/nero, ne possiamo immaginare il prodotto. Considerando ogni punti bianco come 1 e ogni punto nero come 0, è chiaro che moltiplicando l’immagine per la maschera, tutti i punti neri verranno tagliati fuori. Le immagini bianco nero infatti svolgono principalmente la funzione di maschere e tendono ad isolare particolari oggetti o parti.

maskmask

Nel prossimo articolo vederemo i formati immagine.

 

Floating Point

Floating point e interi.

La discussione precedente sulla profondità dei bit era pertinente ai numeri interi. C’è da dire che i numeri a 8 bit, che vanno da 0 a 255, sono tutti interi e quindi non troveremo mai 10.4 o 112.25. Comunque i decimali chiamati , floating point, sono un modo molto importante per rappresentare i pixel se i software di compositing li supportano. Il computer converte i numeri a 8 bit in floating point mappando 0-255 a 0-1.

Il valore floating point di zero è settato al valore intero di zero in 8 bit mentre il valore di floating point 1 è assegnato al valore in 8 bit di 255. Per i dati a 16 bit il valore 1.0 è settato a 65.535. Usare i float hanno vataggi e svantaggi. Vediamo quali sono.

floating point

Floating point: pro e contro.

Se proviamo a moltiplicare un valore 8 bit di grigio, ad esempio 128 per il 50% di un altro grigio (128) otteremmo un 128×128 che è sicuramente maggiore rispetto al valore 64 che volevamo raggiungere. Se invece facciamo la stessa operazione in float: 0.5 *0.5 fa 0.25 il quale convertito da float in intero è 64. Un altro svantaggio deriva dal clipping dell’utilizzo del sistema a 8 bit. Il floating point infatti non limita il valore a 255 variazioni, un immagine a 8 bit non potrebbe avere un rosso con valore 300 poichè questo verrebbe tagliato a 255, in compositing se proviamo ad addizionare due immagini con due bianchi, il pixel finale non sarà mai superiore al 255 poichè questo è il limite del canale a 8 bit. Se lavoriamo invece in float un valore di bianco 1 + un altro bianco 1 da 2 e quindi anche se il nostro monitor non riesce a mostrarci piu dell’ 1, il nostro valore è ben conservato e sappiamo bene che quel pixel ha una luminosità del doppio. Quando infatti lavoreremo sull’esposizione ci troveremo con brillanti risultati.

Uno dei problemi del floating point è l’enorme quantità di calcolo che richiede alla cpu/gpu rispetto al calcolo per interi. I computer di oggi sono comunque abbastanza moderni e non dovremmo preoccuparcene troppo.

Nel prossimo articolo vedremo le maschere e la moltiplicazione di immagini.

 

Bit Depth

Bit e Possibili variazioni.

Tutti avremo sicuramente sentito che i computer lavorano soltanto con 0 e 1. Questo è letteralmente vero. Ogni uno e ogni zero è chiamato bit ( binary digit – cifra binaria ) e questi bit sono organizzati in blocchi da 8 bit chiamati bytes. Alcuni esempi di bytes sono 010110101 e 10101101. Se raggruppi 8 bit in un byte, il numero possibile di combinazioni 1 e 0 è esattamente 256 e il loro valore oscilla tra 0 e 255. In altre parole, un byte da 8 bit può esprimere numeri interi che vanno da 0 a 255. Il numero di bit utilizzati prende appunto il nome di bit depth, profondità di bit. Se il numero di bit fosse ad esempio 10, avremmo 1024 variazioni. Se invece lo riducessimo a 4 ne avremmo 16. Più è grande la profondità dei bit, più numeri possiamo rappresentare.

bit

Per portare tutto questo discorso alle immagini digitali, se la luminosità di un pixel è espressa da un byte a 8 bit, allora possono esserci soltanto 256 valori di luminosità che vanno dal nero (0) al bianco (255). Questo è un range abbastanza buono. Per una immagine rgb a 8bit per canale, quindi, avremmo 256 variazioni per ogni canale e quindi moltiplicando 256 x 256 x 256 avremmo 16.7 milioni di colori. Potrebbero essere tanti ma ciò non è vero.

Bit e trilioni.

I programmi moderni di compositing supportano immagini a 16 bit. Quando la profondità dei bit è incrementata da 8 a 16, la variazioni possibili diventano 65.536 e non più solo 256. Potremmo avere quindi una variazione da nero a bianco con 65 mila intermedi e nessun nero o bianco sembrerebbe mai nero o bianco abbastanza. I colori di una immagine rgb a 16 bit infatti sarebbero 65536 ^3 e quindi più di 281 trilioni.

bit

Comunemente però siamo quasi sempre a contatto con immagini a 8 bit ma ci sono casi in cui anche noi ci rendiamo conto quanto siano importanti immagini ad almeno 10 bit. Sarà capitato a tutti di osservare un cielo perfettamente blu e tutti abbiamo notato quanto sia bella la natura nel rendere suggestivo il gradiente che va dall’orizzonte fino alla volta celeste. Beh una immagine a 8 bit non riuscirebbe a rendere questo cosi spettacolare poichè si verificherebbe il banding. I 256 stati di luminosità non riuscirebbero a coprire tutte le variazioni del gradiente reale.

Nel prossimo articolo vedremo cosa sono i floating point.

 

Twitter | Instagram | Bitbucket | Battlelog | LinkedIn | GitHub

Google Profile


My name is Giovanni Di Grezia, but people call me xgiovio.

Here is my homepage: .

I am a VFX Artist and Software Developer

And this is a picture of me.

Giovanni Di Grezia