vers l'index général de l'aide
Spécifier le degré de transparence filtrée ou non-filtrée d'une couleur.
POV-Ray 2.0+sup. (filter) POV-Ray 3.0+sup. (transmit, rgbft)
pigment {Green filter .8} pigment {Green transmit .5} pigment {Green filter .2 transmit .3} pigment {rgbft <0,1,0,.2,.3>}
Le mot clé filter donne à une couleur la propriété de laisser passer la lumière qui passe à travers une surface, tout en colorant à son tour cette lumière. Cela veut dire que si une lumière blanche passe à travers un objet filtrant jaune, les objets frappés par la lumière après le filtre seront éclairés en jaune. C'est également valable pour les objets vus (par la caméra) à travers un objet filtrant.
Le filtre observe les règles naturelles des mélanges de couleurs, ce qui veut dire qu'un objet rouge vu à travers un filtre bleu sera pratiquement noir.
Ce mot clé permet de spécifier une transparence non-filtrée, c'est-à-dire que même si les surfaces concernées laissent paraître ce qui se situe derrière elles, elles n'ont aucune influence sur la couleur de la lumière.
Il est également possible de spécifier des valeurs de filter et transmit dans une "extension" du vecteur rgb, à l'aide de rgbf, rgbt, et rgbft.
rgbf <1,1,0,.5> // = rgb <1,1,0> filter .5 rgbt <1,1,0,.5> // = rgb <1,1,0> transmit .5 rgbft <1,1,.5,.5> // = rgb <1,1,0> filter .5 transmit .5
L'illustration ci-dessous montre 10*10 sphères ayant des valeurs de filter et de transmit
variant de 0 à 1. Il faut faire deux observations :
- la transparence totale (objet "invisible") est atteinte avec transmit 1 filter 0
- lorsque la somme des deux valeurs excède 1, l'objet devient "lumineux", et fait passer
davantage de lumière qu'il n'en reçoit, ce qui peut être utile pour modéliser une diode,
ou d'autres choses...
Attention, lorsque vous utilisez beaucoup d'objets transparents, veillez à ajuster la variable max_trace_level (dans global_settings).
LA bourde universelle : donner une valeur de filter à une surface noire ! Ça ne marche pas ! Du noir transparent, ça n'existe pas ! En fait, les filter sont des opérations de multiplication, donc du noir (0) multiplié par n'importe quoi, ça donnera toujours du noir !
Par contre, transmit fonctionnera normalement avec du noir.
auteur : Fabien Mosen