Les textures décrivent le surface de l'objet, c'est-à-dire sa matière. Elles sont la combinaison de pigments, de normales et de finitions. Le pigment est la couleur, ou le modèle de couleurs de la matière. La normale est une méthode pour simuler des motifs variés de bosses, dentelures, rides ou vagues, par modification du vecteur normale de surface. La finition décrit les propriétés réflectives de la matière.
Note : dans les versions précédentes, la texture contenait aussi des informations sur l'intérieur d'un objet. Cette information a été déplacée vers un modificateur d'objet séparé appelé interior. Voir "L'intérieur" pour les détails.
Il y a trois sortes de textures de base : simple, modélisée ou empilée. Une texture ordinaire est un simple pigment, une normale optionnelle et une simple finition. Une texture modélisée combine deux ou plusieurs textures en utilisant un modèle, ou une fonction mélangeante. Les textures modélisées peuvent être rendues assez complexes avec l'inclusion de modèles dans des modèles. Toutefois, au plus bas niveau, elles sont faites de textures ordinaires. Une texture empilée est faite d'au moins deux textures empilées les unes sur les autres.
Note : une texture ordinaire peut être une texture très complexe avec des pigments et des normales modélisés. Le terme ordinaire signifie seulement qu'elle est faite d'un unique pigment, d'une normale et d'une finition.
La syntaxe pour texture est :
TEXTURE: PLAIN_TEXTURE | PATTERNED_TEXTURE | LAYERED_TEXTURE PLAIN_TEXTURE: texture { [TEXTURE_IDENTIFIER] [PNF_IDENTIFIER...] [PNF_ITEMS...] } PNF_IDENTIFIER: PIGMENT_IDENTIFIER | NORMAL_IDENTIFIER | FINISH_IDENTIFIER PNF_ITEMS: PIGMENT | NORMAL | FINISH | TRANSFORMATION LAYERED_TEXTURE: NON_PATTERNED_TEXTURE... PATTERNED_TEXTURE: texture { [PATTERNED_TEXTURE_ID] [TRANSFORMATIONS...] } | texture { PATTERN_TYPE [TEXTURE_PATTERN_MODIFIERS...] } | texture { tiles TEXTURE tile2 TEXTURE [TRANSFORMATIONS...] } | texture { material_map { BITMAP_TYPE "bitmap.ext" [MATERIAL_MODS...] TEXTURE... [TRANSFORMATIONS...] } } TEXTURE_PATTERN_MODIFIER: PATTERN_MODIFIER | TEXTURE_LIST | texture_map { TEXTURE_MAP_BODY }
Dans PLAIN_TEXTURE chaque élément est optionnel, mais les TEXTURE_IDENTIFIER, s'ils sont présents, doivent être devant. Si aucun identificateur de texture n'est donné, POV-Ray crée une copie de la texture par défaut. Voir "La directive #default" pour les détails.
Ensuite viennent les identificateurs optionnels pigment, normale et/ou finition qui modifient tout pigment, normale et finition déjà déclarés dans le précédent identificateur de texture ou la texture par défaut. C'est utilisé pour la compatibilité, pour autoriser les choses comme : texture { MyPigment } où MyPigment est un identificateur de pigment.
Finalement viennent les déclarations optionnelles pigment, normal ou finish qui modifient tout pigment, normale et finition déjà déclarés dans l'identificateur. Si aucun identificateur de texture n'est donné, ces modifications se portent sur les défauts. Voici une texture simple typique :
texture { pigment {MyPigment} normal {MyNormal} finish {MyFinish} scale SoBig rotate SoMuch translate SoFar }
Les TRANSFORMATIONS peuvent être insérées entre les déclarations de pigment, de normale ou de finition, mais elles sont généralement à la fin. Si elles sont insérées, elles ne modifient que la partie déjà spécifiée. Par exemple :
texture { pigment {MyPigment} scale SoBig // n'affecte que le pigment normal {MyNormal} rotate SoMuch // affecte le pigment et la normale finish {MyFinish} translate SoFar // la finition n'est jamais transformable // par conséquent, n'affecte que le pigment et la normale }
Les identificateurs de textures peuvent être déclarés pour rendre les scènes plus lisibles et paramétrables. La déclaration se fait ainsi :
TEXTURE_DECLARATION: #declare IDENTIFIER = TEXTURE | #local IDENTIFIER = TEXTURE
Où IDENTIFIER est le nom de l'identificateur sur 40 caractères et TEXTURE est toute déclaration valide de texture. Voir "#declare vs. #local" pour des informations sur la portée.
Les sections suivantes décrivent toutes les options disponibles dans les pigments, les normales et les finitions qui sont les parties principales de la texture simple. Il y a également des sections séparées pour "Les textures modélisées" et "Les textures empilées" qui sont faites de textures simples.
Note : tuiles et material_map des textures modélisées sont obsolètes, et ne sont supportés que pour la compatibilité.
| 3.4.1 Le pigment |