Le height_field permet de créer des objets à partir d'une image bitmap pour réaliser des reliefs par exemple. Fonctionne très bien avec les csg, et permet ainsi de créer des découpes irréguliéres à la surface d'un objet.
Il y a plusieurs façons de créer un height_field:
La première est d'utiliser Pov-Ray pour  créer l'image bitmap qui sera ensuite utilisée dans la scène finale.
Une deuxième méthode consiste à utiliser un logiciel de retouche photo comme Gimp pour créer l'image bitmap qui sera ensuite utilisée dans la scène finale..
Une troisième méthode, consiste à utiliser des fonctions mathématiques. 


l'image bitmap créer avec Pov-Ray

global_settings { hf_gray_16 }
// l'image de sortie est codée sur 16 bits pour être utilisable dans un height_field

camera {
location < 0, 20, 0>
look_at 0
}

plane { y, 0
pigment {
wrinkles
color_map {
[0 rgb 0]
[1 rgb 1]
}
scale <3, 1, 3> // permet de modifier l'aspect du height_field
}
finish { ambient 0.6 }
}

l'image de sortie peut être au format tga, png
L'image de rendu apparaît en noir et blanc. Les parties blanches formeront les bosse et les parties noires les creux. L'image peut être modifiée dans un programme de retouche photo.

le height_field

height_field {
png "height_field.png" // nom du fichier image calculé précédement
smooth
//water_level 0.8
pigment { ForestGreen }
scale < 5, 1, 5>
}

smooth: donne un aspect lisse au heigh_field
water_level: permet d'ignorer les parties du height_field se trouvant en dessous d'une certaine altitude
scale: par défaut, un height_field est situé dans un cube <0, 0,0><,<1, 1, 1>,il est donc nécessaire d'apporter des transformations


Une autre application d'un height_field
intersection {
height_field {
png "height_field.png"
smooth
//water_level 0.4
scale < 8, 1, 8>
translate <-5, 1, -5>
}
sphere { <0, 0, 0>,2 }
texture { T_Grnt1
finish { specular 0.2
roughness 0.03
brilliance 0.8
metallic}
}
}


sommaire les boucles le ciel