3.4.7 La projection UV

Toutes les textures dans POV-Ray sont définies dans les 3 dimensions. Même l'application d'images planes est faite ainsi. Toutefois, il est quelque fois préférable d'avoir la texture définie pour la surface de l'objet. Cela est particulièrement vrai pour les objets surface bicubique et les objets maille, qui peuvent être étendus et compressés. Quand l'objet est étiré ou compressé, il serait bien que la texture soit collée à la surface de l'objet et suive les déformations de l'objet.

Quand uv_mapping est utilisé, alors la texture de l'objet sera appliquée en utilisant les coordonnées de la surface (u et v) au lieu des coordonnées spatiales (x, y et z). Cela est fait en prenant une tranche de la texture 3D de l'objet sur le plan XY (Z=0) et en l'appliquant sur la surface de l'objet, en suivant les coordonnées de la surface de l'objet.

Note : certaines textures doivent être tournées pour correspondre à la tranche sur le plan XY.

Syntaxe :

texture {
	uv_mapping pigment {PIGMENT_BODY} | pigment {uv_mapping PIGMENT_BODY}
	uv_mapping normal {NORMAL_BODY } | normal {uv_mapping NORMAL_BODY }
	uv_mapping texture {TEXTURE_BODY} | texture {uv_mapping TEXTURE_BODY}
}

3.4.7.1 Les objets supportés

La projection en surface est actuellement définie pour les objets suivants :

3.4.7.2 Les vecteurs UV

Avec le mot clé uv_vectors, les coordonnées UV des coins peuvent être contrôlées pour les surfaces bicubiques et les maillages de triangles standards.

Pour les surfaces bicubiques, les coodonnées UV peuvent être spécifiées pour chacun des quatre coins de la surface. Cela vient avant les points de contrôle.
La syntaxe est :
uv_vectors <corner1>, <corner2>, <corner3>, <corner4>
avec le défaut
uv_vectors <0, 0>, <1, 0>, <1, 1>, <0, 1>

Pour les maillages de triangles standards (pas mesh2) vous pouvez spécifier les coordonnées UV pour chacun des trois sommets uv_vectors <uv1>, <uv2>, <uv3> dans chaque triangle de la maille. Cela vient après les coordonnées (ou les coordonnées & les normales pour les triangles adoucis) et avant la texture.
Exemple:

mesh {
	triangle {
		<0, 0, 0>, <0.5, 0, 0>, <0.5, 0.5, 0>
		uv_vectors <0, 0>, <1, 0>, <1, 1>
	}
	triangle {
		<0, 0, 0>, <0.5, 0.5, 0>, <0, 0.5, 0>
		uv_vectors <0, 0>, <1, 1>, <0, 1>
	}
	texture {
		uv_mapping pigment {
			image_map {
				sys "SomeImage"
				map_type 0
				interpolate 0
			}
		}
	}
}
3.4.6 Les textures empilées 3.4.6 Les textures empilées 3.4.8 L'interpolation de la texture en triangle 3.4.8 L'interpolation de la texture en triangle