4.4.2.2 Costruzione
di Blob Complessi e Forza Negativa.
In un nuovo file, blobdem3.pov,
introduciamo questo esempio un po' più complesso :
#include "colors.inc"
camera {
angle 20
location<0,2,-10>
look_at<0,0,0>
}
light_source { <10, 20, -10> color White }
blob {
threshold .65
sphere { <-.23,-.32,0>,.43, 1 scale <1.95,1.05,.8> } //palmo
sphere { <+.12,-.41,0>,.43, 1 scale <1.95,1.075,.8> } //palmo
sphere { <-.23,-.63,0>, .45, .75 scale <1.78, 1.3,1> } //palmo
sphere { <+.19,-.63,0>, .45, .75 scale <1.78, 1.3,1> } //palmo
sphere { <-.22,-.73,0>, .45, .85 scale <1.4, 1.25,1> } //polso
sphere { <+.19,-.73,0>, .45, .85 scale <1.4, 1.25,1> } //polso
cylinder { <-.65,-.28,0>, <-.65,.28,-.05>, .26, 1 } //mignolo
inferiore
cylinder { <-.65,.28,-.05>, <-.65, .68,-.2>, .26, 1 } //mignolo
superiore
cylinder { <-.3,-.28,0>, <-.3,.44,-.05>, .26, 1 } //anulare
inferiore
cylinder { <-.3,.44,-.05>, <-.3, .9,-.2>, .26, 1 } //anulare
superiore
cylinder { <.05,-.28,0>, <.05, .49,-.05>, .26, 1 } //medio
inferiore
cylinder { <.05,.49,-.05>, <.05, .95,-.2>, .26, 1 } //medio
superiore
cylinder { <.4,-.4,0>, <.4, .512, -.05>, .26, 1 } //indice
inferiore
cylinder { <.4,.512,-.05>, <.4, .85, -.2>, .26, 1 } //indice
superiore
cylinder { <.41, -.95,0>, <.85, -.68, -.05>, .25, 1 } //pollice
inferiore
cylinder { <.85,-.68,-.05>, <1.2, -.4, -.2>, .25, 1 } //pollice
superiore
pigment { Flesh }
}
Come possiamo dedurre dai commenti,
stiamo costruendo una mano.
![]() |
Fig. 18-Mano
Dopo avere renderizzato quest'immagine,
notiamo alcuni problemi. Il palmo ed il polso della mano sarebbero risultati
più realistici se avessimo utilizzato un paio di dozzine di componenti
più piccoli invece della mezza dozzina di grossi componenti che
abbiamo usato ed ogni dito dovrebbe essere composto da tre segmenti invece
che da due. Per fare una dimostrazione semplificata, tralasceremo questi
aspetti. C'è invece una cosa che dobbiamo veramente notare :
questo poveretto ha una terribile artrosi ! Un ripasso di quello che
sappiamo dei blob rivelerà subito cosa c'è di sbagliato.
Le articolazioni sono i punti dove le componenti si sovrappongono, per
cui la forza, sommata, delle due componenti, fa sì che la superficie
si estenda oltre il dovuto, poiché rimane al di sopra del threshold
dato. Per risolvere ciò, abbiamo bisogno di aggiungere dei componenti
che corrispondano alle regioni di sovrapposizione e che bilancino parte
della forza dei due campi combinati. Aggiungiamo le seguenti componenti
al nostro blob (file blobdem4.pov).
sphere { <-.65,.28,-.05>, .26, -1
} //bilancia il gonfiore del mignolo (nocca)
sphere { <-.65,-.28,0>, .26, -1 } // bilancia il gonfiore del mignolo
(palmo)
sphere { <-.3,.44,-.05>, .26, -1 } // bilancia il gonfiore //dell'anulare(nocca)
sphere { <-.3,-.28,0>, .26, -1 } // bilancia il gonfiore dell'anulare(palmo)
sphere { <.05,.49,-.05>, .26, -1 } // bilancia il gonfiore del medio(nocca)
sphere { <.05,-.28,0>, .26, -1 } // bilancia il gonfiore del medio(palmo)
sphere { <.4,.512,-.05>, .26, -1 } // bilancia il gonfiore //dell'indice(nocca)
sphere { <.4,-.4,0>, .26, -1 } // bilancia il gonfiore dell'indice(palmo)
sphere { <.85,-.68,-.05>, .25, -1 } // bilancia il gonfiore del //pollice(nocca)
sphere { <.41,-.7,0>, .25, -.89 } // bilancia il gonfiore del pollice(palmo)
![]() |
Fig. 19-Mano
Molto meglio ! La forza negativa delle componenti sferiche bilancia circa la metà della forza del campo nei punti dove si sommano le componenti delle 'falangi', così che il brutto, irreale (e doloroso) gonfiore è rimosso migliorando notevolmente la nostra mano. Potremmo probabilmente fare una mano ancora più realistica con un paio di dozzine di componenti aggiuntive, ma ciò che abbiamo per adesso, è già un buon miglioramento. E, per ora, abbiamo una conoscenza elementare dei meccanismi dei blob che ci permette di costruire un'ampia gamma di oggetti 'organici'.
![]() |
![]() |
![]() |