4.4.3 Height
Field
Un height field (campo di quota) è
un oggetto la cui superficie è determinata dal valore del colore
o dal numero in tavolozza dei punti di un'immagine creata a questo scopo.
Con gli height field, si possono creare montagne realistiche ed altri tipi
di paesaggi. Per prima cosa, abbiamo bisogno di un'immagine dalla quale
creare l'height field. Accidentalmente, POV-Ray è ideale per creare
un'immagine di questo tipo.
Creiamo un nuovo file chiamato image.pov e vi scriviamo :
#include "colors.inc"
global_settings {
assumed_gamma 2.2
hf_gray_16
}
La parola hf_gray_16
fa sì che l'immagine di output sia in un particolare formato a 65536
toni di grigio (in 16 bit), perfetto per la generazione di height field.
Il normale formato a 256 toni di grigio risulterebbe in superfici meno
regolari. Creiamo una macchina fotografica posta in modo che punti direttamente
all'origine lungo l'asse z.
camera {
location <0, 0, -10>
look_at 0
}
Creiamo poi un piano posizionato come
un muro a z=0. Questo piano riempirà completamente lo schermo e
sarà colorato con striature bianche e grigie.
plane { z, 10
pigment {
wrinkles
color_map {
[0 0.3*White]
[1 White]
}
}
}
Infine, una sorgente luminosa.
light_source { <0, 20, -100> color
White }
Renderizziamo questa scena a 640x480
+A0.1 +FT.
![]() |
Fig. 20-Immagine per height-field
Otterremo un'immagine che produrrà
un ottimo height field. Creiamo un nuovo file chiamato hfdemo.pov
e lo editiamo come segue :
#include"colors.inc"
aggiungiamo una macchina fotografica,
due unità sopra l'origine e dieci indietro...
camera{
location <0, 2, -10>
look_at 0
angle 30
}
...ed una sorgente luminosa.
light_source{ <1000,1000,-1000> White
}
Quindi, aggiungiamo l'height field.
Nella seguente sintassi, viene specificato un file Targa e l'height field
viene smussato, gli viene assegnato un semplice pigmento bianco, è
traslato per centrarlo sull'origine e scalato in modo che assomigli a delle
montagne e riempia lo schermo.
height_field {
tga "image.tga"
smooth
pigment { White }
translate <-.5, -.5, -.5>
scale <17, 1.75, 17>
}
Salviamo il file e lo renderizziamo
a 320x240 -A.
In seguito, quando saremo soddisfatti del risultato, lo renderizzeremo
ad una risoluzione maggiore e con antialiasing.
Ed eccoci sull'Himalaya !
![]() |
Fig. 21- Montagne
![]() |
![]() |
![]() |