IV. L'aspect des objets▲
Il n'est pas nécessaire de renseigner tous les aspects des objets.
IV-A. Les pigments▲
Le pigment correspond à la couleur proprement dite de l'objet. Il peut aussi modifier la transparence de l'objet avec l'option transmit. Exemple :
sphère{<0,1,0>,1
pigment{
color rgb<1,0,0>
transmit .5
}
}
Il est possible de déclarer une couleur ou bien un motif alliant plusieurs couleurs. Les motifs alliant plusieurs couleurs utilisent généralement une carte de couleurs (color_map). Une carte de couleurs donne un éventail de couleur au motif. Vous pouvez aussi spécifier un facteur de turbulence dans le motif. Voici quelques motifs utilisant les color_map.
IV-A-1. bozo▲
pigment {
bozo
turbulence 2
color_map {
[0 color rgb<0,0,1>]
[.5 color rgb<1,0,0>]
[1 color rgb<1,1,0>]
}
}
IV-A-2. agate▲
pigment {
agate
turbulence 2
color_map {
[0 color rgb<0,0,1>]
[.5 color rgb<1,0,0>]
[1 color rgb<1,1,0>]
}
}
IV-A-3. marble▲
pigment {
marble
turbulence 2
color_map {
[0 color rgb<0,0,1>]
[.5 color rgb<1,0,0>]
[1 color rgb<1,1,0>]
}
}
IV-A-4. granite▲
pigment {
granite
turbulence 2
color_map {
[0 color rgb<0,0,1>]
[.5 color rgb<1,0,0>]
[1 color rgb<1,1,0>]
}
}
IV-A-5. ripples▲
pigment {
ripples
turbulence 2
color_map {
[0 color rgb<0,0,1>]
[.5 color rgb<1,0,0>]
[1 color rgb<1,1,0>]
}
}
IV-B. Les normales▲
La modification de la normale permet de simuler une surface d'un objet différente de sa surface géométrique, de manière à ce que les rayons lumineux se reflètent selon un angle différent. Cela permet de faire passer un objet lisse pour un objet rugueux ou érodé. L'image ci-dessus est réalisée à partir d'un objet parfaitement lisse, muni d'un modificateur de normale. À la manière des pigments, il est possible de spécifier des motifs pour les normales, et cette fois-ci, en utilisant une carte de normale (normal_map). L'utilisation des normales est très intéressante pour un objet qu'on souhaite calculer rapidement. C'est un bon moyen d'économiser des ressources. Attention cependant, si la caméra est trop près de l'objet, on pourra voir que celui-ci est parfaitement lisse. Exemple de normale :
normal {
ripples
turbulence .2
normal_map {
[0 bozo]
[.5 ripples]
[1 agate]
}
}
IV-C. Les finishs▲
L'attribut finish permet de définir la manière dont il interagira avec la lumière : réflexion, brillance, tâches spéculaires … Exemple :
sphère{<0,0,0>,2 pigment{Red transmit .5}
finish{
reflection .5 // définit le pourcentage de réflexion
brilliance .8 // définit le niveau de brillance de l'objet
phong .5 // définit l'intensité de la tâche spéculaire
phong_size 3 // définit la taille de la tâche spéculaire
}
}
C'est sur le finish qu'il faut jouer pour obtenir un objet neuf ou ancien, verni ou mat, en plastique, en métal…
IV-D. Les textures▲
Une texture est un regroupement d'un pigment, d'un finish et d'une normale. Une texture peut ne regrouper qu'un pigment, étant donné qu'il n'est pas obligatoire de définir une normale ni un finish particulier. Exemple d'utilisation :
plane
{
z,0
texture
{
pigment{color rgb<0,1,0>}
normal{
// nom du motif de normale
bumps
turbulence .3
}
finish{
// caractéristiques des tâches spéculaires
phong .3 phong_size 2
}
}
}
Mais au fait, ça sert à quoi, si c'est juste pour rajouter une paire d'accolades autour du triplet pigment/normal/finish ?
Ça devient très intéressant lors de la réutilisation de textures déjà existantes (voir les sections sur les fichiers include standards et sur la manipulation d'objets). Il suffira d'appeler une texture par :
texture{ nom_de_la_texture }
IV-E. Les interiors▲
L'attribut interior décrit l'intérieur d'un objet. Pour que cet attribut ait une quelconque incidence sur l'image, l'objet concerné doit être transparent (au moins un peu). L'attribut interior permet de définir des options comme l'indice de réfraction de l'objet ou le faux caustique. Exemple :
interior
{
ior 1.33 // indice de réfraction
caustics 3 // intensité du faux caustique
}
Mais aussi et surtout, l'attribut interior permet de définir des médias. Ce sont des objets qui vont interagir d'une manière particulière avec la lumière : ils pourront émettre / absorber ou 'attraper' de la lumière. Les possibilités des médias étant immenses, il faudrait consacrer plusieurs articles rien que sur leur utilisation. Et le but de cet article n'est pas de présenter toutes les fonctionnalités de POV-Ray, mais juste une présentation des plus courantes.
IV-F. Les materials▲
Un material est un regroupement d'une texture et d'un interior. Exemple d'utilisation :
sphère
{
// centre et rayon
<0,.5,0>,.5
material
{
texture
{
pigment
{
color <1,0,0>
transmit 1 // objet entièrement transparent
}
// modificateur de normale
normal
{
ripples // nom du motif
scale 2 // agrandissement du motif
turbulence 3 // ajout de turbulence dans le motif
}
}
interior
{
ior 1.33 // indice de réfraction
caustics 3 // intensité du faux caustique
}
}
}
Et pour les mêmes raisons que les textures, material n'est pas qu'une paire d'accolades en plus. Cela permet de réutiliser des materials déjà existants.