Povray




Povray, ovvero la "persistenza della visione".

Povray e' un raytracer molto valido che mi sta dando parecchie soddisfazioni.

Cio' che mi affascina parecchio e' la possibilita' di creare filmati 3D di notevole effetto e qualita' (a discapito di ore e ore di rendering... :-\ ).

Per i miei primi esperimenti ho costruito un personaggio molto semplice che ho chiamato Max e che potete vedere qui sotto:



max




beh, si lo so... la sfera cromata su superficie a scacchi e' un po' il rispettivo dell'"hello world" dei linguaggi di programmazione, ma gia' l'ho detto che sono i miei primi esperimenti :P
Qualora vi interessasse questo e' il sorgente: Max.pov.

Come vi ho detto sono alle primissime armi e per quanto riguarda la costruzione dei filmati mi sono un po' arrangiato. Povray dispone di un proprio sistema per agevolare il "movie making", si chiama "clock". In poche parole il clock e' una variabile particolare che si inserisce nel file sorgente il cui valore viene pero' settato da line di comando.

Io non ho utilizzato il clock :D eheheh. Troppo facile, ovviamente!
Ho preferito incasinarmi la vita ed ho scritto un breve programma in C che setta il valore di diverse variabili all'interno di un file .inc, il quale viene incluso dal sorgente .pov, dopo di che il programma in C lancia il rendering con una chiamata a system().

In effetti ha il suo perche' questo meccanismo. Infatti il limite del "clock" di povray sta nel fatto che la variabile "clock" e' una sola, il che non rappresenta un vero problema, in quanto potremmo determinare il valore di altre varibile in base al valore della variabile di "clock" (questo perche' Povray dispone di un proprio pre-processore in grado di eseguire calcoli matematici e trigonometrici) pero' per i miei primi esperimenti volevo avere un sorgente .pov piu' snello ed essenziale e delegare l'algoritmo a qualcosa di esterno, un programma in C per l'appunto.

Costruire un filmato significa costruire ed assemblare ogni singolo frame. Il programma in C e' delegato quindi non solo al calcolo delle variabili del sorgente .pov ma anche al rendering di ogni frame.

Una volta che tutti i frame sono stati renderizzati sara' necessario assemblarli e magari comprimerli in formato mpeg. Per questa operazione mi sono appoggiato ad un plug-in del Gimp che fornisce un'interfaccia per settare i parametri da passare a mpeg2encode. Anche qui e' necessario fare un po' di prove prima di trovare i settaggi che piu' ci aggradano.


Qui sotto trovate il risultato dei miei primi esperimenti.








That's all folks !!

by darko