VRML Worlds, Mondes VRML

Membre de ClickFR, Reseau francophone Paie-Par-Click

Gérer l'aspect de ses surfaces : le noeud Material

Type Champ Defaut Borne Utilisation
SFFloat ambiantIntensity 0 0-1 Pourcentage de lumière ambiante reflétée par la surface 
SFColor diffuseColor .8 .8 .8 0 - 1 Couleur que la surface diffuse à la lumière
SFColor emissiveColor 0 0 0 0 - 1 Couleur que la surface émet
SFFloat shininess 0.2 0 - 1 Brillance de l'objet
SFColor specularColor 0 0 0 0 - 1 Couleur de la lumière spéculaire (brillance de l'objet)
SFFloat transparency 0 0 - 1 Transparence de la surface

Le noeud Material définit l'aspect de la surface d'une figure géométrique. Il vous permet de définir la couleur, la brillance, la transparence de la surface, ainsi que sa réaction par rapport à l'éclairage de la scène.

En VRML, les couleurs s'expriment selon trois composantes : Le rouge, le vert et le bleu, exactement comme une couleur HTML. Cependant les valeurs ne vont pas de 0 à 255 (comme en HTML) mais de 0 à 1  (0 = Noir  1 = La couleur la plus claire). Les composants de la couleur sont les Float, c'est à dire des nombres à virgule.

La lumière ambiante de la scène (pour l'utilisation de l'ambiantIntensity) a générée par les différentes lumières de la scène.

A propos des exemples :

Afin de vous permettre de mieux apprécier les différentes possibilités des Material, nous avons créé un cône sur lequel va s'appliquer les différents aspect de la surface. Autour de ce cône tourne une lumière de type PointLight (représentée par une sphère blanche), une lumière omnidirectionnelle qui va éclairer la sphère. La rotation de la sphère est assurée par un timeSensor et un petit script Java. Nous aurions pu aussi utiliser OrientationInterpolator.

Exemple 1 - Utilisation de diffuseColor

Voici la définition simple d'un surface bleue.

material Material {
    diffuseColor 0 0 1
}

Voir le résultat - Voir la source

Remarque : diffuseColor sélectionne en fait la couleur qui sera diffusée en fonction de l'éclairage de la scène. Cela veut sire que si votre objet est bleu (0 0 1) et que vos lumières sont rouges (1 0 0), l'objet ne réfléchira aucune lumière, il ne sera pas pas éclairé.

Exemple 2 - Utilisation de emissiveColor

emissive color permet de définir une couleur émisse par la surface (quelque soit l'éclairage). Nous avons choisi une couleur différente du bleu afin que vous puissiez apprécier le mélange des couleurs.

material Material {
    diffuseColor 0 0 1
    emissiveColor 0 .2 .2
}

Voir le résultat

Exemple 3 - Utilisation de specularColor et shininess

specularColor définit la couleur du reflet de la surface et shininess (entre 0 et 1) sa brillance.Plus shininess est petit, plus l'objet est brillant

material Material {
    diffuseColor 0 0 1
    specularColor 1 1 1
    shininess 1
}

Voir le résultat

Un objet plus brillant :

material Material {
    diffuseColor 0 0 1
    specularColor 1 1 1
    shininess 0.1
}

Voir le résultat

Exemple 4 - Utilisation de transparency

transparency précise le niveau de transparence de la surface. A 0, l'objet est opaque, à 1 l'objet est entièrement transparent.

Nous avons ajouté une emissiveColor afin de voir l'objet même lorsque la lumière ne l'éclaire pas. Vous verrez la lumière passer derrière l'objet.

material Material {
    diffuseColor 0 0 1
    emissiveColor 0 0 .5
    specularColor 1 1 1
    shininess 0.3
    transparency .7
}

Voir le résultat

Retour au tutorials


 Accueil de VRML Worlds   CHAT 3D   Autres technologies Web3D 
 Des textures   Apprendre le VRML   Autres mondes multi-user 
 Les objets du chat   Outils pour le VRML   Autres sites 3D 

Réagir, nous proposer un site, participer ...