4.2.1 Usare
la Messa a Fuoco
Costruiamo una semplice scena per mostrare
l'impiego della messa a fuoco. Per questo esempio useremo una sfera rosa,
un parallelepipedo verde ed un cilindro blu, con la sfera davanti, il parallelepipedo
in mezzo ed il cilindro dietro. Un pavimento a scacchiera per evidenziare
la prospettiva ed un paio di sorgenti luminose completeranno la scena.
Creiamo un nuovo file chiamato focaldem.pov e vi inseriamo il seguente
testo.
#include "colors.inc"
#include "shapes.inc"
#include "textures.inc"
#version 3.0
#global_settings {
assumed_gamma 2.2
max_trace_level 5
}
sphere { <1, 0, -6>, 0.5
finish {
ambient 0.1
diffuse 0.6
}
pigment { NeonPink }
}
box { <-1, -1, -1>, < 1, 1, 1>
rotate <0, -20, 0>
finish {
ambient 0.1
diffuse 0.6
}
pigment { Green }
}
cylinder { <-6, 6, 30>, <-6, -1, 30>, 3
finish {
ambient 0.1
diffuse 0.6
}
pigment {NeonBlue}
}
plane { y, -1.0
pigment {
checker color Gray65 color Gray30
}
}
light_source { <5, 30, -30> color White }
light_source { <-5, 30, -30> color White }
Ora possiamo procedere a piazzare la
nostra macchina fotografica in una posizione appropriata. Mettendola dietro
i nostri tre oggetti darà un buon risultato. Aggiustare il punto
focale, lo muoverà in un qualunque punto della scena. Aggiungiamo
solo le righe seguenti al file :
camera {
location <0.0, 1.0, -10.0>
look_at <0.0, 1.0, 0.0>
// focal_point <-6, 1, 30> // cilindro blu a fuoco
// focal_point < 0, 1, 0> // parallelepipedo verde a fuoco
focal_point < 1, 1, -6> // sfera rosa a fuoco
aperture 0.4 // un buon compromesso
// aperture 0.05 // quasi tutto è a fuoco
// aperture 1.5 // molto sfuocato
// blur_samples 4 // pochi campioni, più veloce
blur_samples 20 // più campioni, immagine di alta qualità
}
Fig.4-Messa a fuoco
Il punto focale è semplicemente
il punto dove il fuoco della macchina fotografica è massimo e l'immagine
risulta più nitida. Posizioniamo questo punto nella nostra scena
ed assegnamo un valore all'apertura per determinare quanto vicino o quanto
lontano dal punto di massimo fuoco vogliamo che appaia la sfocatura. Aumentare
l'apertura ha l'effetto di rendere minore l'area a fuoco, mentre diminuirla
rende maggiore l'area dell'immagine a fuoco. Questo è il modo in
cui controlliamo come la sfocatura comincia ad avvenire attorno al punto
focale. Il valore blur_samples
determina quanti raggi sono usati per campionare ogni singolo punto dell'immagine
(pixel). In maniera semplificata, quanti più raggi si usano, tanto
migliore è la qualità dell'immagine risultante, ma conseguentemente
aumenta anche il tempo necessario per il rendering. Ogni scena è
diversa dalle altre e così dovremo sperimentare. Questo tutorial
ha due esempi da 4 e 20 campioni, ma ne possiamo utilizzare di più
per immagini ad alta risoluzione. Non si dovrebbero usare più campioni
di quanti siano necessari per ottenere la qualità desiderata, dato
che maggiore è il numero dei campioni, maggiore è il tempo
di rendering. I valori di confidence e
variance
sono trattati nella sezione "Messa a Fuoco"
della guida al linguaggio.
Conviene sperimentare con le regolazioni dei valori focal_point,
aperture,
blur_sample .
La scena ha linee con altri valori che possiamo provare commentando la
linea di default con un doppio slash (//) e de-commentando la linea che
vogliamo provare. Facciamo solo un cambiamento per volta, per vedere gli
effetti sulla scena.
Due cose finali da sapere quando si usa la messa a fuoco : primo,
non abbiamo bisogno di specificare l'anti-aliasing (con il comando +a)
dato che il metodo di messa fuoco si occupa automaticamente dell'antialiasing ;
secondo, la messa a fuoco può venire usata solo per 'macchine fotografiche'
di tipo prospettico.