Voici la meilleure partie de
pigment : la possibilité d'indiquer non pas une valeur unie, mais un motif de couleurs (pouvant être transparentes, évidemment).
Pour comprendre ce qu'est un motif, il faut savoir exactement ce qu'est un
pigment : c'est un système qui donne à chaque point de l'espace une couleur (qui peut éventuellement être transparente).
Oui, vous avez bien lu, à chaque point de
l'espace, et non simplement de la surface.
Ainsi, lorsque l'objet est opaque, vous n'en voyez que la surface. La couleur de cette surface est obtenue en prenant la couleur que lui attribue le pigment en ce point...
Bon, quand la couleur est unie, la couleur est la même dans tout l'espace, donc sur tout l'objet. Mais imaginez qu'il existe un moyen de donner une couleur différente à chaque point en fonction de sa position dans l'espace...
Eh bien c'est exactement ce que font les motifs. Les motifs permettent de donner une "règle" à
pigment, pour lui indiquer comment positionner les couleurs dans l'espace. La surface de l'objet aura donc la couleur des points dont elle est constituée...
Vous avez compris ?...
En gros,
pigment donne à chaque point une couleur. Motif permet de faire varier cette couleur, donc de dessiner des espèces de motifs sur les surfaces

, et non de simples couleurs unies.
Pour cela, on commence par vider notre zone
pigment :
Code : C
Ensuite, on met le type de motif que l'on souhaite utiliser. Il y en a pas mal, je vous les décrirai plus tard.
Deux types de motifs sont disponibles :
- les motifs "à liste", qui n'utilisent qu'un nombre restreint de couleurs, que l'on spécifie dans une liste (par exemple, rouge et vert uniquement).
- Les motifs "à carte", qui utilisent un très grand nombre de couleurs par dégradé des valeurs données.

Tout ça ne doit pas vous dire grand-chose...
Mais ça ira mieux quand je vous aurai expliqué !
Les motifs "à liste"
Ces motifs sont en fait les plus simples à comprendre et à utiliser. Imaginez que vous donniez une liste de couleurs, par exemple rouge (rgb <1,0,0>) et vert (rgb <0,1,0>). Le motif va créer des zones, et en remplir certaines de rouge, et d'autres de vert. C'est aussi simple que ça !
Prenons par exemple le motif
checker (vous verrez la liste complète des motifs dans le prochain chapitre), qui prend une liste de 2 couleurs. Ce motif crée un échiquier, et donne alternativement aux cases les deux valeurs de la liste.
Comment l'écrire, cette liste ?

Tout simplement en écrivant à la suite les couleurs, juste après le type du motif !
Ainsi,
Code : C1
2
3
4
5 | pigment {
checker
rgb <1,0,0>
rgb <0,1,0>
}
|
donnera un quadrillage rouge et vert : utilisé dans un plan, voilà le résultat :
Pour utiliser un motif à liste, il suffit donc d'écrire dans la zone pigment le type de motif, suivi des couleurs utilisées.
Les motifs "à carte"
Les motifs "à carte" (
colormap en anglais) assignent à chaque point une valeur allant de 0 à 1, et donne à ce point la couleur correspondante à cette valeur. La "carte des couleurs" permet d'indiquer la couleur en fonction du nombre. Les différents motifs répartissent différemment ces valeurs de 0 à 1...
Par exemple, le motif
onion déploie les valeurs de 0 à 1 de manière circulaire et répétée, comme sur le schéma :

Ici, blanc = 0 et noir = 1.
Là encore, je détaillerai tous les motifs à carte dans le prochain chapitre.
Maintenant, parlons de ce
colormap (j'utiliserai ce terme plutôt que "carte des couleurs"). Faut-il définir pour chaque décimale la valeur de la couleur ?...

Ce serait bien long et fastidieux !
Heureusement, il y a bien plus simple. Pour définir un
colormap, il suffit de donner à certaines valeur une couleur spécifique, POV-Ray se chargera alors de compléter le reste en dégradant les couleurs !
Pour bien comprendre comment marche le
color_map, voilà un schéma :
Par exemple, sur le plan avec l'
onion au-dessus, on avait mis la couleur blanche à la valeur 0, et la couleur noire à la valeur 1 : le dégradé s'est alors fait tout seul !
Pour résumer,

On voit bien qu'au final, le
pigment permet bien de donner à chaque point une couleur.
Maintenant que la théorie est passée, venons-en aux faits. Nous avons notre zone
pigment, nous avons choisi le motif
onion. Voici le code jusque là :
Code : C
A présent, il est temps de définir le
colormap. Pour cela, nous allons mettre une zone
color_map à l'intérieur de la zone
pigment :
Code : C1
2
3
4
5
6 | pigment {
onion
color_map {
}
}
|
Pour donner la couleur en fonction du nombre, il suffit d'écrire le nombre en question, suivi de la couleur, et cela entre crochets. Ainsi, assigner "blanc" à la valeur 0 se fera ainsi :
Code : C1
2
3
4
5
6 | pigment {
onion
color_map {
[0 rgb <1,1,1>]
}
}
|
Vous comprenez ? Et si l'on veut mettre plusieurs couleurs, il suffit d'en ajouter d'autres : voilà donc le code entier du plan que nous avons vu :
Code : C 1
2
3
4
5
6
7
8
9
10
11 | plane {
y
0
pigment {
onion
color_map {
[0 rgb <1,1,1>]
[1 rgb <0,0,0>]
}
}
}
|
Il est parfaitement possible d'assigner plus de deux couleurs ! Il y aura donc plusieurs dégradés successifs.
C'est tout pour le fonctionnement des motifs à carte !