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

7.6.8.8.1        Buco Nero



Il warp 'buco nero' si chiama così perché è simile ai veri buchi neri. Così come questi, non è realmente possibile vederlo. L'unico modo per intuirne la presenza è quello di osservare l'effetto che ha sugli oggetti che lo circondano. Diversamente da un vero buco nero, non può inghiottirti e comprimerti a dimensioni, diciamo, di 10-20 micron di diametro (ipotesi molto ottimistica, N.d.T.) se ti avvicini troppo (su questa parte stiamo ancora lavorando J ). Prendiamo per esempio le venature di una texture legno. Usando la normale turbolenza di POV-Ray ed altri modificatori di texture, possiamo ottenere delle belle venature, ma nella sua casualità, la texture è regolare, è 'regolarmente casuale' ! Aggiungendo un 'black hole' creeremo un disturbo localizzato in una o più posizioni. Il buco nero può avere l'effetto sia di 'risucchiare' la texture che lo circonda, sia di respingerla. Nel secondo caso, se applicato ad un legno, può simulare i nodi delle venature. In questo esempio parleremo di una texture 'legno' perché è l'ideale per spiegare il funzionamento di black_hole. Ad ogni modo, questa funzione può essere usata in qualunque tipo di texture.
L'effetto che il 'buco nero' ha sulla texture può essere specificato. Per default risucchia il colore con una forza calcolata esponenzialmente (inverso del quadrato esattamente come l'attrazione gravitazionale), ma può essere cambiata. I buchi neri possono essere usati ovunque sia permessa una frase
warp{...}. La sintassi è :

warp
{
black_hole <CENTER>, RADIUS
[falloff VALUE]
[strength VALUE]
[repeat <VECTOR>]
[turbulence <VECTOR>]
[inverse]
}


Alcuni esempi sono...


warp
{
black_hole <0, 0, 0>, 0.5
}

warp
{
black_hole <0.15, 0.125, 0>, 0.5
falloff 7
strength 1.0
repeat <1.25, 1.25, 0>
turbulence <0.25, 0.25, 0>
inverse
}

warp
{
black_hole <0, 0, 0>, 1.0
falloff 2
strength 2
inverse
}

Per capire completamente come funziona black_hole è importante conoscerne le basi teoriche. Un buco nero (o qualunque warp) funziona prendendo un punto e spostandolo in un'altra posizione. La quantità di perturbazione dipende dalla forza del buco nero nel punto in cui si applica ed è direttamente connessa alla quantità di spostamento che vedi avvenire nella texture. Più forte è il buco nero alle coordinate del punto su cui agisce, più questo sarà spostato. Lo spostamento avviene sempre lungo il vettore che collega il centro del buco nero ed il punto sul quale influisce. I buchi neri si suppongono sferici. Perché un punto subisca l'effetto del buco nero, deve trovarsi all'interno del volume della sfera. Supponendo di avere un buco nero a <1,1,1> ed un punto a <1,2,1>, se questo punto è perturbato di una quantità totale di +1 unità, la sua nuova posizione sarà <1,3,1>, che si trova sulla congiungente i punti <1,1,1> ed <1,2,1>. In questo caso il punto è allontanato dal buco nero ; questo non è il suo normale comportamento, ma è utile per un esempio. I parametri di un buco nero sono i seguenti :

Centro        il centro del buco nero
Raggio        il suo raggio
Falloff        la potenza di 2 con la quale l'effetto decade (default 2)
Strenght        la quantità della trasformazione
Inverted        se impostato allontana i punti invece di risucchiarli
Repeat        se impostato, avremo molti buchi neri invece di uno
Turbulence        se impostato, la posizione di ognuno dei buchi neri (se viene usato
repeat) è casuale.
Repeat_Vector        il vettore <x,y,z> lungo il quale ripetere i warp.
Turbulence_Vector il valore massimo in tre dimensioni di turbolenza casuale.

Ciascuno di questi parametri viene discusso di seguito :

Centro un vettore che definisce il centro della sfera che rappresenta il buco nero.

Raggio un numero che indica la lunghezza in unità del raggio della sfera
Se un punto non è all'interno del raggio non sarà influenzato dalla presenza del buco nero.

Falloff la potenza di decadimento dell'effetto. Il valore predefinito è 2. La forza del punto nero in un punto qualunque, prima di applicare il modificatore della forza, è come segue.
Primo, converti la distanza dal centro ad un valore da 0 a 1 proporzionale al raggio. Un punto sulla superficie della sfera avrà valore 0, un punto al centro avrà valore 1.
Chiamiamo questo valore c ed eleviamolo alla potenza specificata da
falloff. Per default falloff è 2, quindi otteniamo c^2 (c al quadrato). Il valore che otteniamo è la forza del buco nero in quella posizione che, dopo aver applicato il fattore strenght determina la perturbazione del punto nello spazio. Ad esempio se c è 0.5 la forza è 0.5^2=0.25. Se c è 0.25 la forza è 0.125. Ma se c è esattamente uguale ad 1, la forza è 1. Usando la potenza di 2 possiamo vedere che via via che c diminuisce la forza cala in modo esponenziale con un decadimento geometrico (secondo la potenza di -2). In parole povere la forza è molto più forte vicino al centro di quanto non lo sia verso l'esterno. Aumentando falloff si può aumentare questa differenza. Un valore alto significa che i punti sulla superficie della sfera saranno appena influenzati e che quelli vicini al centro saranno fortemente perturbati. Un valore di 1 per il falloff significa che l'effetto è lineare. Un punto che si trovi a metà strada tra il centro e la superficie subirà una forza uguale a 0.5. Un valore di falloff tra 0 e 1 significa che avvicinandosi alla superficie la forza aumenta invece di diminuire. Questo può avere qualche utilità ma ha un effetto collaterale : l'effetto di un buco nero cessa al di fuori del suo perimetro, questo significa che i punti appena all'interno del perimetro saranno fortemente perturbati, mentre quelli appena fuori non saranno perturbati e questo darebbe un bordo visibile di forma sferica. Un valore di falloff uguale a 0 significherebbe che la forza sarebbe uguale a 1 per tutti i punti all'interno del buco nero poiché ogni numero diverso da zero elevato alla potenza 0 dà 1.
La dimensione dello spostamento del punto è data fondamentalmente dal valore della forza dopo il ridimensionamento. Facciamo un esempio : supponiamo di avere un buco nero di raggio 2 ed un punto ad un unità dal centro, questo significa che si trova esattamente tra il centro e la superficie e che c sarebbe esattamente 0.5. Se usiamo il valore di 2 per
falloff la forza su quel punto sarebbe 0.5^2=0.25. Questo significa che dobbiamo spostare questo punto della sua distanza dal centro moltiplicata per 0.25, in questo caso la distanza è di una unità e quindi spostiamo il punto di 1*0.25=0.25 unità. Questo ci dà una distanza dal centro di 1.0-(1.0*0.25)=0.75 unità dal centro, sulla congiungente dal centro alla posizione originaria del punto. Se i punti fossero parte, diciamo, della venatura di un legno, questa venatura sembrerebbe convergere verso il centro (invisibile) del buco nero. Se fosse impostata la parola chiave inverse sarebbe invece respinta dal buco nero e la posizione finale del punto sarebbe 1.0+(1.0*0.25)=1.25 sulla retta congiungente il centro con la posizione originaria del punto.

Strenght (forza). La forza da un po' più di controllo su quanto un punto viene perturbato dal buco nero. Fondamentalmente la forza del buco nero come calcolata sopra viene moltiplicata per il valore di strenght che di default è 1.0. Se imposti strenght a 0.5 per esempio, tutti i punti all'interno del buco nero verranno spostati solo della metà di quanto sarebbero spostati normalmente. Se imposti strenght a due verranno spostati del doppio. C'è una limitazione all'ultimo esempio : lo spostamento può essere al massimo la distanza originaria dal centro del buco nero. Questo significa che un punto lontano 0.75 unità dal centro può essere spostato di un massimo di 0.75 unità, indipendentemente dal valore di strenght. Il risultato di questa limitazione è che si avrà una zona vicino al centro del buco nero in cui tutti i punti il cui valore finale della forza era maggiore o uguale a uno vengono spostati.

Inverted se si inserisce la parola chiave inverted i punti sono respinti dal centro invece di venirne attratti.

Repeat : repeat permette di simulare l'effetto di molti buchi neri senza doverli dichiarare esplicitamente. Repeat è un vettore che dica a POV-Ray di usare il buco nero definito in più posizioni. Se non ti interessa la teoria dietro a tutto questo salta il testo seguente e usa i valori riassunti più avanti (non osate saltarlo, altrimenti perché abbiamo fatto la fatica di tradurlo ! N.d.T.).
Usare
repeat divide la scena in parallelepipedi, il primo dei quali si estende dall'origine al punto specificato dal vettore repeat. Supponiamo che il vettore sia <1,5,2>. Il primo parallelepipedo si estenderebbe tra <0,0,0> e <1,5,2>. Questo parallelepipedo si ripete quindi ce ne sarebbero tra <0,0,0> e <-1,-5,-2>, tra <1,5,2> e <2,10,4> e così via in tutte le direzioni all'infinito. Quando usi repeat il vettore che specifica il centro del buco nero non specifica una posizione assoluta rispetto agli assi, ma relativa ad ogni parallelepipedo. Si possono usare solo valori positivi, valori negativi darebbero risultati indefiniti. Supponiamo che il centro sia <0.5,1,0.25> e che il vettore repeat sia <2,2,2>. Questo ci dà un parallelepipedo tra <0,0,0> e <2,2,2> ecc. i centri dei buchi neri per questi blocchi sarebbero : <0,0,0>+<0.5,1,0.25>=<0.5,1,0.25> e <2,2,2>+<0.5,1,0.25>=<2.5,3.0,2.25>. A causa del metodo con cui vengono eseguiti i calcoli c'è una restrizione sui valori che si possono specificare per il vettore repeat. Fondamentalmente, ogni buco nero deve essere racchiuso totalmente all'interno del rispettivo parallelepipedo, senza incrociare le pareti di quelli adiacenti. Questo significa che in tutte e tre le dimensioni, la posizione del centro non deve essere minore del raggio e che il valore del vettore repeat per ogni dimensione deve essere maggiore o uguale della somma di raggio e posizione del centro, poiché altrimenti permetterebbe ad un buco nero di incrociare le pareti di un parallelepipedo. Semplicemente, per x, y e z deve essere

raggio <= centro <= repeat - raggio

Se il vettore repeat è troppo piccolo per soddisfare questo criterio, verrà aumentato e sarà visualizzato un messaggio di avvertimento. Se la posizione del centro è minore del raggio, esso verrà spostato, ma non verranno visualizzati messaggi di avvertimento.
Nota che nessuna delle regole viste sopra significa che non puoi sovrapporre i buchi neri. Questo è possibile ed anzi può essere molto utile. La restrizione si applica solo ad elementi dello stesso buco nero che viene ripetuto. Puoi dichiarare un secondo buco nero che si ripete e i cui elementi possono tranquillamente sovrapporsi a quelli del primo causando le interazioni appropriate.
Si può attribuire il valore zero a una qualunque delle dimensioni del vettore
repeat, col significato che il buco nero non sarà ripetuto in quella direzione.

Turbulence. La turbolenza può essere utilizzata solo con repeat. Permette di inserire un elemento di casualità nel metodo con cui i buchi neri si ripetono, per dar loro un aspetto più naturale. Un buon esempio sono i nodi nel legno : sarebbe artificioso se i nodi si ripetessero tutti ala stessa distanza.
Il vettore
turbulence viene sommato alla posizione del centro di ogni buco nero, dopo che ogni sua coordinata viene moltiplicata per un valore casuale che va da 0 ad 1.
Ad esempio, supponi che un
black_hole sia a <2,2,2>. Hai specificato un vettore turbolenza di <4,5,3>, che significa che non vuoi che la posizione del buco nero possa variare più di quattro unità nella direzione delle x, cinque nella direzione delle y e tre nella direzione delle z. Le possibili nuove posizioni sono le seguenti :

x può variare tra 2 e 6
y può variare tra 2 e 7
z può variare tra 2 e 5

La posizione del centro del buco nero che ne risulta è casuale (ma coerente, in modo che i rendering possano essere ripetibili) e posta all'interno di quell'intervallo.
C'è una limitazione nell'uso della turbolenza, che riflette quella sull'uso del vettore
repeat. Non si può specificare un valore che farebbe uscire un buco nero dal suo parallelepipedo. Poiché POV-Ray non sa in anticipo di quanto verrà spostato il buco nero a causa della natura casuale dello spostamento, inserisce una regola simile a quella valida per repeat, tranne che aggiunge la variazione massima possibile al centro. Ad esempio, supponi di avere un buco nero centrato ad <1.0,1.0,1.0>, di raggio 0. 5 e turbolenza <0.5,0.25,0>. Normalmente, il valore minimo di repeat sarebbe <1.5,1.5,1.5>, ma se teniamo conto della turbolenza, il minimo diventa <2.0,1.75,1.5>.

Riassunto di Repeat : per tutti e tre gli assi x, y, z il centro deve essere spostato almeno del raggio ed il valore del vettore repeat deve essere almeno maggiore della somma di centro, raggio e turbolenza. L'eccezione è che repeat può essere 0, col significato che non ci sono ripetizioni su nessuno degli assi.





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