3.4.6 Les textures empilées

Il est possible de créer une variété d'effets spéciaux en utilisant les textures empilées. Une texture empilée consiste en plusieurs textures partiellement transparentes, les unes au dessus des autres, pour créer une texture plus complexe. Les différentes couches de textures apparaissent à travers les portions transparentes, pour créer l'apparence d'une seule texture, qui est la combinaison de plusieurs textures.

Vous créez les textures empilées en listant deux ou plusieurs textures les unes après les autres. La dernière texture sera au dessus de la pile. Toutes les textures autres que la première doivent avoir un peu de transparence. Par exemple :

object {
	My_Object
	texture {T1}	// couche du bas
	texture {T2}	// une couche semi transparente
	texture {T3}	// la couche semi transparente du haut
}

Dans cet exemple, T2 apparaît seulement là où T3 est transparente, et T1 apparaît seulement là où T2 et T3 sont transparentes.

La couleur des sous-couches est filtrée par les couches supérieures, mais le résultat n'est pas exactement comme une série de surfaces transparentes. Si vous avez une pile de surfaces avec des textures pour chacune, la lumière sera filtrée deux fois : un fois en entrant, quand les couches inférieures sont illuminées par une lumière filtrée, et une fois sur le chemin du retour. Les textures empilées ne filtrent pas sur le chemin entrant. D'autres parts du calcul de l'illumination travaillent également différemment. Le résultat est étonnant, et autorise de fantastiques textures, mais elles sont simplement différentes des surfaces multiples. Voir stones.inc, dans le dossier des fichiers inclus, pour quelques magnifiques textures empilées.

Note : dans les versions ultérieures à POV-Ray 3.5, filter travaillait comme transmit dans les textures empilées. Il a été changé pour fonctionner comme un filtre. Cela peut changer l'apparence de textures "d'avant 3.5". La directive #version peut être utilisée pour conserver la réaction "d'avant 3.5".

Note : les textures empilées doivent utiliser la syntaxe complète autour de toute déclaration de pigment, de normale ou de finition. N'utilisez pas les multiples déclarations de pigment, de normale ou de finition sans les placer dans la déclaration de texture.

Les textures empilées peuvent être déclarées. Par exemple :

#declare Layered_Examp =
texture {T1}
texture {T2}
texture {T3}

peut être évoqué comme ceci :

object {
	My_Object
	texture {
		Layer_Examp
		// ici, tout pigment, normale ou finition
		// modifie la couche du bas.
	}
}

Note : aucune macros n'est autorisée dans les textures empilées. Le problème est que si la macro contient une déclaration, l'analyseur ne sait pas si deux ou plusieurs identificateurs de texture sont supposés appartenir à la texture en couche ou à d'autres déclarations.

Si vous voulez utiliser une texture empilée dans un modèle de bloc, comme le damier, l'hexagone ou la brique, ou dans une application de matériaux, vous devez d'abord la déclarer, puis la référencer dans une déclaration de texture unique. Une texture modélisée ne peut pas être utilisée comme couche d'une texture empilée, toutefois, vous pouvez utiliser cette dernière, comme toute texture, dans une texture modélisée.

3.4.5 Les textures modélisées 3.4.5 Les textures modélisées 3.4.7 La projection UV 3.4.7 La projection UV