Mirror di ebook, audiolibri e file musicali tratti da Liber Liber


CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions Manuale di Utilizzo di POV-Ray 3.01 - Versione Italiana

4.10.6.1        La Variabile Clock : la Chiave di Tutto



POV-Ray supporta una variabile decimale predefinita chiamata clock (tutto a lettere minuscole). Questa è la chiave per automatizzare le animazioni. Nelle operazioni a linea di comando, la variabile clock viene impostata fornendo al programma il parametro +k. Per esempio, il parametro +k3.4 imposterebbe il valore di clock a 3.4. Allo stesso modo, in un file .INI, la presenza della linea

Clock=3.4

darebbe lo stesso risultato.
Se non impostiamo il valore di
clock e non usiamo il loop di animazione interno a POV-Ray (che verrà descritto tra poco) la variabile clock è sempre definita come uguale a zero, quindi è possibile impostare un file scena pensato per l'animazione e renderizzarlo come immagine ferma, durante la fase di progettazione della scena.
L'esempio più semplice per usare questa variabile a nostro vantaggio è definire un oggetto che si sposta a velocità costante, per esempio lungo l'asse delle x. Avremmo quindi la frase

translate <clock, 0, 0>

nella frase di dichiarazione del nostro oggetto e il loop di animazione assegnerebbe valori progressivamente crescenti a clock. Fino a quando vogliamo che solo un oggetto o un aspetto della scena cambi, va tutto bene, ma cosa succede se vogliamo controllare cambiamenti multipli nella nostra scena ? Il segreto è di usare valori normalizzati di clock (cioè che variano tra zero ed uno) e poi dichiarare altre variabili proporzionali a clock. Quindi, impostiamo clock (ci stiamo arrivando !) per variare tra 0 ed 1 e poi lo usiamo come fattore moltiplicativo per altre variabili. In questo modo, le altre variabili possono assumere qualunque altro valore e clock si mantiene tra 0 ed 1 per qualunque altro utilizzo. Vediamo un esempio (relativamente) semplice.

#include "colors.inc"
camera {
location <0, 3, -6>
look_at <0, 0, 0>
}

light_source { <20, 20, -20> color White }

plane { y, 0
pigment { checker color White color Black }
}

sphere { <0, 0, 0> , 1
pigment {
gradient x
color_map {
[0.0 Blue ]
[0.5 Blue ]
[0.5 White ]
[1.0 White ]
}
scale .25
}
rotate <0, 0, -clock*360>
translate <-pi, 1, 0>
translate <2*pi*clock, 0, 0>
}

Renderizzando una serie di fotogrammi con la variabile clock che varia progressivamente tra zero ed uno, la scena precedente produrrà una palla a strisce che rotola attraverso lo schermo.

Fig. 193-Semplice animazione

In questo caso abbiamo due obiettivi:

a. Traslare la palla dal punto A al punto B e

b. Ruotare la palla in proporzione al suo movimento lineare, in modo di dare l'impressione che essa stia rotolando e non strisciando.

Partendo dal punto b, iniziamo con la nostra sfera posizionata nell'origine, poiché una rotazione in qualunque altro punto, farebbe orbitare la palla attorno all'origine e non su sé stessa. Attraverso tutta la rotazione, la palla farà un giro completo di 360°, quindi abbiamo usato la formula
360*clock per determinare la rotazione che si ha in ogni fotogramma. Poiché l'animazione inizia a clock=0 e finisce a clock=1, la rotazione della sfera va da 0 a 360 gradi.
Poi, abbiamo usato la prima traslazione per portare la sfera al punto iniziale (A). Non potremmo averla semplicemente definita in questo punto, dato che avrebbe poi ruotato attorno all'origine, quindi prima di poter completare il punto a (la traslazione) dobbiamo mettere la sfera dove deve trovarsi alla partenza. Poi, la trasliamo nuovamente, questa volta di una distanza dipendente da
clock, in modo che si sposti dal punto che le abbiamo assegnato per la partenza. Abbiamo scelto la formula 2*pi*r*clock (la circonferenza massima della sfera moltiplicata per clock) in modo che la sfera si sposti di una distanza pari alla sua circonferenza quando ruota di 360 gradi. In questo modo, abbiamo sincronizzato la rotazione della sfera alla sua traslazione, facendo sembrare che essa rotoli tranquillamente sul piano.
Oltre a permetterci di coordinare molteplici aspetti dei cambiamenti che avvengono nella scena durante l'animazione, matematicamente parlando, l'altra buona ragione per utilizzare valori normalizzati di
clock è che non importa se stiamo renderizzando la nostra animazione per fare una GIF animata da 10 fotogrammi o un filmato AVI da 300. I valori di clock sono proporzionali al numero dei fotogrammi e quindi lo stesso codice di POV-Ray funzionerà indipendentemente da quanto è lunga la sequenza. La nostra palla si sposterà esattamente della stessa distanza e non importa quanto finirà con l'essere lunga l'animazione.





Static Wikipedia 2008 (no images)


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh