vers l'index général de l'aide
vers l'index des media

media - syntaxe élémentaire, emission, absorption

Un media appliqué à un objet se place dans une structure interior.

L'objet qui contient le media, le "conteneur", doit absolument être hollow, ou sinon le media n'agira pas.

Bien entendu, pour que le media soit visible, il est souhaitable que la texture du conteneur soit, au moins partiellement, transparente.

object {...
        texture {...}
        interior {
                 media {...}
                 }    
        }

Il est également possible d'utiliser media en dehors de toute autre définition, mais nous en reparlerons plus tard.

scène de test

Tous les exemples de ces pages sont basés sur la scène de test suivante :

#include "colors.inc"
camera {location <15,4,15> direction z*1 look_at <0,5,5>}
light_source {<40,50,30> White*2}

plane {y,0                        pigment {SteelBlue}}
box   {<-20,0,-50>,<-22,6,10>     pigment {OrangeRed}}
cone  {<-3,-1,4>,2,<-3,8,3>,1.5 pigment {YellowGreen}}

#declare Container = sphere {0,1 no_shadow hollow}

object {Container pigment {White transmit 1}
 interior {
    media {...}
          }
scale 6
translate <-2,4,5>
}

dimension du conteneur

Ce n'est pas obligatoire, mais il est vivement recommandé de créer le media dans un conteneur situé à l'origine, et dont la dimension vaut entre 1 et 2 unités, puis d'appliquer les transformations nécessaires après l'application du media.

La scène de test observe cette précaution.

emission

  media {intervals 1
         emission rgb White*.05 
        }
emission

Comme un media est présent dans l'espace, et pas seulement sur une surface, il faut spécifier le nombre d'échantillons à prendre le long du rayon qui traverse le conteneur, à l'aide du mot clé intervals. Dans un cas simple comme celui-ci, un seul échantillon suffit.

Par défaut, le media a une valeur uniforme dans tout l'espace du conteneur, la variation de teinte ne dépend que de l'épaisseur traversée.

Le mot clé emission est suivi d'une couleur (dont les filter et transmit sont ignorés). Notez à quel point la couleur est minorée, ce qui est nécessaire pour éviter de saturer complètement la couleur. En fait, la transparence se règle en atténuant la luminosité de l'émission.

La couleur résultante est simplement l'addition de la couleur du media et de ce qui se trouve derrière.

absorption

  media {intervals 1
         absorption rgb Red*.1 
        }
emission

absorption fonctionne comme emission, à ceci près qu'il s'agit d'une soustraction, et plus d'une addition. Selon le système rgb, la couleur du media absorbant sera soustraite de celle des objets situés derrière. Dans l'exemple, on remarque que seul l'objet contenant du rouge est affecté, ce qui est logique.

combinaison

Il est possible (et courant) de combiner l'absorption et l'émission, l'exemple suivant est un media qui émet du jaune, et qui absorbe le bleu :

  media {
         intervals 1
         emission   rgb Yellow*.05 
         absorption rgb Blue*.1 
        }
emission

Attention, car les absorptions et les émissions interagissent !

auteur : Fabien Mosen