Mercoledì 20 Settembre 2017
Accedi Registrati

Accedi al tuo account

Username
Password *
Ricordami

Pov-Ray, ovvero sulla Computer-Grafica in Ray-Tracing

 Avete già notato lo sfondo del titolo nello stile de “Il mondo di Quark”? Bene, questo articolo è un’introduzione ad un altro dei miei argomenti preferiti: il ray-tracing, mia personale croce e delizia, la cosa che mi toglie costantemente preziose ore di sonno, per poter terminare l’ennesimo lavoretto con il computer, che cattura (quasi) costantemente i miei pensieri, per escogitare come posso realizzare una particolare immagine o per decidere quale sarà la prossima.

 Cerchiamo di spiegare in maniera semplice in cosa consista il ray-tracing, ma lo faRemo in maniera graduale, senza fretta. Uno dei tipici utilizzi del computer, fin dai primi anni della sua ancor breve vita, è stata la realizzazione delle immagini che rappresentino qualcosa quanto più fedelmente possibile. Ciò viene comunemente indicato come computer grafica. Naturalmente nei primordi della computer grafica si realizzavano prevalentemente grafici di tipo matematico, come lo studio di funzioni, grafici di equazioni, figure geometriche ecc. o statistico, come istogrammi, diagrammi, insiemi di punti ecc. In casi particolari si rappresentavano anche oggetti tridimensionali nella tecnica cosiddetta wireframe (in italiano fil di ferro), mediante la quale si tracciano i bordi o gli spigoli degli oggetti, tipicamente geometrici, oppure una rete di triangoli per quegli oggetti di forma irregolare o comunque con una superficie curva, che non può essere indicata con degli spigoli.

sfera wire

 Vediamo subito qui sopra un esempio di immagine in wireframe (tutte le immagini qui rappresentate, salvo diversa indicazione, sono state realizzate dal sottoscritto utilizzando il programma Pov-Ray). All'epoca era usuale il fatto di vedere questi segmenti in colore verde su sfondo nero, perché i primi monitor per computer, che non erano di certo paragonabili a quelli odierni, erano "monocromatici 1", cioè potevano tracciare testo o grafica in un solo colore, quasi sempre verde su sfondo nero, a volte ambra o anche bianco; a rigore, si tratta di due colori, uno dei quali è il nero dello sfondo (un bit per pixel).

 Chi ricorda il mitico Apple II con i suoi monitor, appunto nelle varietà verde o ambra? Nella foto qui sotto c’è un Apple II plus, io avevo un Apple IIe, che aveva la tastiera con le lettere minuscole (addirittura!...), col monitor a fosfori verdi, un solo drive per floppy da 5”1/4, ma avevo il mouse... Ricordo anche che le due pagine in “alta” risoluzione avevano 280×192 pixel... Era la seconda metà degli anni ’80 e, a ripensarci oggi, mi rendo conto di quanto effettivamente i mezzi che ora abbiamo a disposizione anche sul più modesto dei computer, a quell’epoca fossero fantascientifici. Ma non dilunghiamoci oltre e andiamo avanti con l’argomento dell’articolo.

Mac

Apple II europlus. Source: it.wikipedia - Original uploader was Hellis - Permission: CC-BY-SA-2.5-IT; Released under the GNU Free Documentation License.

 Restiamo sulla rappresentazione degli oggetti in tre dimensioni. Nell’immagine in wireframe che abbiamo visto è stata disegnata una semplice sfera, tracciando un certo numero di meridiani e di paralleli, a loro volta approssimati da poligoni, per i quali ogni lato è stato rappresentato con un segmento. Possiamo dire che questo è il metodo più semplice (si fa per dire) per maneggiare e mostrare elementi dello spazio tridimensionale. Sostanzialmente si tratta di trovare un modo di convertire le tre coordinate spaziali nelle due coordinate occorrenti per individuare i punti su un foglio o su uno schermo. Pur essendo presenti aspetti non banali da tenere in considerazione, con poche formule il compito può essere svolto. Però la rappresentazione di un oggetto mediante il tracciamento di tutti gli spigoli, se da un lato ha il vantaggio di richiedere algoritmi di calcolo tutto sommato semplici, dall’altro soffre della mancanza di un certo grado di profondità e della sensazione di realismo. Infatti, se torniamo a guardare la sfera in wire-frame, siamo in grado di stabilire quale dei due poli è visibile? In questo caso sarebbe estremamente difficile, perché la prospettiva utilizzata è molto leggera e si avvicina all’assonometria. L’osservatore virtuale potrebbe trovarsi in alto e quindi vedere il polo nord, per cui il polo sud è visibile solo in quanto il modello è rappresentato in wireframe, ma potrebbe essere in realtà anche situato in basso, quindi vedere direttamente solo il polo sud.
 Dal wireframe passiamo ora al gradino immediatamente superiore. La sensazione di realtà può essere aumentata rimuovendo le linee che si trovano “dietro” l’oggetto rappresentato, se lo immaginiamo come solido, “pieno” e opaco, e che quindi a rigore non sono visibili. E qui sotto c’è l’immagine che risulta da questa operazione.

sfera 2

  Si osserva immediatamente che il problema che abbiamo incontrato poco fa non c’è più. Infatti è visibile soltanto il polo nord della sfera, ed è anche chiaro che l’osservatore si trovi più in alto rispetto al centro della sfera. Quindi diciamo che l’immagine è migliore della precedente, però come al solito le cose non sono mai semplici. Infatti non tutto è migliorato, per più di un motivo. Tanto per cominciare, la rimozione delle linee nascoste ha come effetto collaterale che... la parte nascosta non si vede più! Eh be’, bella forza, o si vede o non si vede, starete pensando. Questo è vero, ed in effetti nelle immagini realistiche, come le fotografie, accade la stessa cosa. Ma in ambito di software di rappresentazione di elementi tecnici, mostrare anche le parti nascoste può essere una funzione molto utile. Per ovviare ad entrambi gli inconvenienti, esistono anche rappresentazioni miste, nelle quali le linee nascoste sono disegnate in maniera differente, ad esempio tratteggiate, più sottili o di colore differente. Possiamo vedere esempi relativi a questi casi in queste tre immagini.

sfere

 Un altro aspetto negativo, per lo meno dal punto di vista di chi deve sviluppare gli algoritmi che realizzano questi disegni, consiste nel fatto che il compito di rimozione delle linee nascoste è molto più complesso della semplice conversione da tre dimensioni a due. A noi può sembrare molto facile stabilire se una linea sia visibile o no, dopotutto fin da bambini siamo abituati a disegnare case, automobili e altro senza avere dubbi su cosa si veda e cosa no. Ma quando tutto ciò deve essere tradotto in un algoritmo, le cose cambiano. Per ora non mi dilungo qui, altrimenti non ne usciamo vivi. Magari ne parliamo in un futuro articolo, per ora dirò solo che il passaggio dalle linee nascoste a quelle tratteggiate o comunque differenti naturalmente è molto più semplice e immediato.

 Passiamo invece adesso ad un differente tipo di rappresentazione. Invece di delineare i contorni delle facce che compongono un solido, si possono disegnare le facce stesse. Naturalmente sorge immediatamente il problema di utilizzare differenti colori per le facce, altrimenti non sarebbe possibile distinguere una faccia da quelle immediatamente vicine.
 Per ovviare a questo problema si possono utilizzare differenti sistemi. Uno dei più comunemente utilizzati è l’associazione di ogni faccia con un colore in diversa gradazione di grigio, in funzione dell’orientamento della faccia. Supponendo di aver stabilito una direzione (e verso) dalla quale proviene un’ipotetica sorgente di luce, si può associare una gradazione di grigio più chiara alle facce la cui normale forma con essa un angolo minore e via via gradazioni sempre più scure al crescere dell’angolo. Infatti, come è noto, se una superficie è disposta ortogonalmente alla direzione di provenienza della luce (quindi la normale alla superficie è invece parallela ad essa), essa apparirà pienamente illuminata, viceversa, se è molto
inclinata, l’illuminazione è più debole. Questo è tra l’altro il motivo per il quale si alternano le stagioni nel corso dell’anno.
 Diamo allora un esempio di questa tecnica, sempre applicandola alla stessa sfera che abbiamo visto finora. L’immagine risultante potete vederla qui sotto.

sfera 4

 Come abbiamo detto, non abbiamo più tracciato gli spigoli di ogni faccia, ma riempito di colore uniforme ognuna delle facce che costituiscono l’oggetto. Osservando il modo in cui variano
le tonalità di grigio, da quelle chiare a quelle più scure, si intuisce facilmente che la sorgente virtuale di luce si trovi leggermente a sinistra, alle spalle dell’osservatore ed in alto.
 Questo tipo di rappresentazione prevede poi innumerevoli varianti. Ad esempio è possibile prevedere la colorazione contemporanea delle facce e degli spigoli, è possibile mettere in
evidenza i punti nei quali si incontrano gli spigoli (i vertici delle facce), è possibile anche dare una rappresentazione dei vettori normali ad ognuna delle facce.

sfera 5

 Nell’immagine di esempio qui sopra  ho inserito tutti gli elementi che ho nominato. Sono possibili anche altre rappresentazioni e l’inserimento di altri dettagli, ma per ora li tralasciamo.
Qualche altra parola per accennare alla tecnica del phong shading, che consiste nell’utilizzare un’interpolazione simulata della normale alla superficie dei poligoni, in modo tale da dare l’impressione di avere una superficie curva ed una sfumatura graduale dei colori da punto a punto. L’immagine in basso fa vedere l’utilizzo di questa tecnica. Si osserva immediatamente un notevole miglioramento riguardo l’aspetto di curvatura, con variazione graduale della tonalità di grigio. Purtroppo, come possiamo subito verificare, l’algoritmo non è perfetto nei punti in cui si passa dalla parte illuminata a quella in ombra e resta visibile l’aspetto poligonale ai bordi dell’oggetto (vedi figura in basso). Si possono attenuare questi due difetti utilizzando un maggior numero di facce.

sfera 6

  La prossima parte verrà pubblicata a breve e riguarderà specificamente la tecnica di Ray-Tracing.

 

Si ringraziano Marco Di Lorenzo e Elisabetta Bonora per l'assistenza nella fase di editing/pubblicazione su AliveUniverse.

Condividi e resta aggiornato!

Remo Di Loreto

Sono laureato in Fisica ed attualmente lavoro in un’industria di semiconduttori (principalmente sensori di immagine). I miei interessi principali nel tempo libero sono la grafica al computer, il rendering 3D, il disegno e pittura su carta o di miniature, la pirografia, le tecniche audio/video, la palestra, i film, soprattutto di genere fantastico e di animazione, la lettura di libri e fumetti, sia italiani che giapponesi e i giochi in generale, inclusi enigmi e giochi matematici.


Email Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

Lascia un commento

Assicurati di inserire (*) le informazioni necessarie ove indicato.
Codice HTML non è permesso.

Newsletter

I nostri articoli sono anche su Coelum Astronomia!

GRATIS E DIGITALE: leggilo ora!

Immagine del giorno

Mission log

AstroAppuntamenti

Settembre 2017
L M M G V S D
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

Meteo spaziale

  • NEO News
    NEO News

    Notizie e aggiornamenti sugli incontri ravvicinati con oggetti potenzialmente pericolosi e sulla loro catalogazione. Aggiornato al 18 Settembre.

Sole e Luna

Attività solare - Credit: SDO/HMI / spaceweather.com

Buchi coronali - Credit: SDO/AIA / spaceweather.com

SOHO LASCO C2 - Credit ESA/NASA SOHO/LASCO

SOHO LASCO C3 - Credit ESA/NASA SOHO/LASCO

Aurora - Europa - Credit: NOAA/Ovation

CURRENT MOON

Aggregatore notizie RSS - - Paperblog : le migliori informazioni in diretta dai blog - Segnala a Zazoom - Blog Directory - intopic.it

[IT] Questo sito utilizza cookie tecnici e di terze parti, per migliorare i servizi e l'esperienza dei lettori. Per saperne di più o negare il consenso prendete visione dell'Informativa Estesa.
Chiudendo questo banner cliccando su 'Accetto' ed in qualunque altro modo, o proseguendo la navigazione su questo sito web, acconsentite al loro uso.
[EN] This site uses technical and third-party cookies, in order to improve services and experiences of our readers. If you want to know more or deny cookies exchange, please view "Cookie Information".
Closing this banner clicking on 'Agree' and in any other way, or continuing to browse this website, you consent with the cookies usage.