Nous allons voir ici comment utiliser du displacement dans RenderMan.
Displace
Les différents shaders
Displace
Le "displace" au contraire du "bump mapping" déforme réellement la géométrie d'un objet. Nous allons voir ici comment l'appliquer à un carré.
Declare "Km" "float"
Projection "perspective" "fov" 40
Display "exemple9.rib" "framebuffer" "rgb"
Format 300 200 1
Translate 0 0 2
WorldBegin
LightSource "ambientlight" 1 "intensity" 0.1
LightSource "distantlight" 2 "intensity" 1.5 "from" [0 0 4] "to" [0 0 0]
Displacement "emboss" "texturename" ["whats_renderman.tx"] "Km" 0.03
Translate -0.5 -0.5 0
Polygon "P" [ 0 0 0 1 0 0 1 1 0 0 1 0 ]
WorldEnd
|
Notre tortue est dans le bon sens grâce à l'inversion de la texture.
C'est la fonction Displacement qui va permettre de créer le displace.
Les différents shaders
Il existe différentes méthodes de displace sous RenderMan grâce aux différents shaders de displace.
Uniquement 3 vont vous être présentées ici.
cloth
Ce shader va donner un aspect de tissu écossais.
Ce shader possède 2 paramètres :
- "freq" : permet de modifier la fréquence du motif (par défaut 500) ;
- "depth" : permet de modifier la force du displace (par défaut 0.02).
"depth" = 0.1
|
"depth" = 0.5
|
"depth" = 0.1 et "freq" = 5
|
"depth" = 0.1 et "freq" = 50
|
dented
Ce shader donne un aspect bosselé à la surface.
Ce shader possède 1 paramètre :
- "Km" : permet de modifier la force du displace (par défaut 1.0).
Paramètre par défaut sur un plan
|
"Km" = 0.2
|
emboss
Voici le dernier shader qui va être présenter. Ce shader permer de "graver" une surface à l'aide d'une texture.
Ce shader possède 2 paramètre :
- "Km" : permet de modifier la force du displace (par défaut 0.03) ;
- "texname" : nom de la texture qui gère le displace.
"Km" = 0.1
|
"Km" = 0.1 avec Rotation de 45 degré selon l'axe des x
|
"Km" = 0.5
|
"Km" = 0.5 avec Rotation de 45 degré selon l'axe des x
|
|