Transformations simples avec RenderMan
Nous allons voir ici comment changer de perspective et comment
appliquer quelques transformations simples (rotation, translation,...).
Projection Perspective
Rotation et couleurs
Mise à l'échelle et aperçu dans le framebuffer
Création d'un objet complexe
Points clés
Projection Perspective
Projection "perspective"
"fov" 40
WorldBegin
Translate 0 0 3
Disk 1 0.5 360
WorldEnd
|
Nous retrouvons ici quelques éléments vus dans
le précédent chapitre. Nous n'allons par revenir dessus. Mais
nous allons voir les nouvelles instructions.
Projection
"perspective" "fov" 40 indique que nous voulons
utiliser une projection perspective avec un champ de vue de 40 degrés.
ensuite l'instrucion inconnue est : Translate 0 0 3.
Cette
instruction permet d'avancer le cercle de 3 unités selon l'axe Z. Le
cercle se retouvera donc à 3 unité de la caméra.
Télécharger la
source
Télécharge l'image
Rotation et couleurs
Nous allons voir comment appliquer une rotation et une couleur
à un tube.
Projection "perspective" "fov" 40
WorldBegin
Translate 0 0 5
Rotate -120 1 0 0
Color 1 0 0
Cylinder 1 -1 1 360
WorldEnd
|
Ici nous voyons l'apparition de 3 nouvelles instructions : Rotate,
Color et
Cylinder.
- Rotate -120 1 0 0
indique que ce que suit va réalise une rotation de -120 degré
selon l'axe x. Voici la syntaxe de l'instruction Rotate : Rotate angle
x y z;
- Color 1 0 0 indique
que tout ce qui sera dessiné ensuite jusqu'à la prochaine instrucion
Color sera rouge.
Il faut spécifier Rouge, Vert et Bleu entre 0 et 1.
- Cylinder 1 -1 1 360
indique l'on va dessiner un cylindre de rayon 1, de profondeur -1, de hauteur
1 et de 360 degrés.
Ce que cet exemple nous montre c'est que les transformations sont appliquées
dans l'ordre inverse où elles sont écrites. Ainsi, la rotation
est d'abord appliquée ensuite, c'est la rotation. Il faut bien faire
attention à cela!
Télécharger la source
Télécharge l'image
Mise à l'échelle et aperçu dans le framebuffer
Nous allons voir maintenant comment mettre à l'échelle des objets
et afficher le résultats dans un fenêtre plutôt que dans
un fichier.
Display
"scaling" "framebuffer" "rgb"
Projection "perspective" "fov" 40
Format 200 150 1
WorldBegin
Scale 0.3 0.3 0.3
Translate 0 0 5
Rotate -120 1 0 0
Cylinder 1 -1 1 360
WorldEnd
|
Nous voyons ici 3 nouvelles instructions : Display,
Format et Scale.
- Display "scaling"
"framebuffer" "rgb" indique qu'il faut rendre l'image
"scaling" dans le framebuffer ie dans une fenêtre et que l'image
est en rgb;
- Format 200 150 1
indique l'image de sortie mesure 200 pixels par 150 et le ratio d'un pixel
est de 1;
- Scale 0.3 0.3 0.3
indique que tout ce qui suit est réduit à 30% de sa taille originale.
Télécharger la source
Création d'un objet complexe
Display "scaling" "framebuffer" "rgb"
Projection "perspective" "fov" 40
Format 200 150 1
WorldBegin
Scale 1 1 1
Translate 0 0 5
Rotate -120 1 0 0
Color 1.0 0.978 0.34
Cylinder 1 0 1.5 360
Disk 0 1 360
Cylinder 0.25 -1.5 0 360
Disk -1.5 1 360
WorldEnd
|
Rien de nouveau ici, à part qu'ici il y'a plusieurs formes
géométriques au lieu d'une seule.
Télécharger la source
Points clés
Nous avons vu dans ce chapitre de nombreuses nouvelles instructions
:
Nous avons vu dans ce chapitre la bases pour la créations de fichier
RIB pour RenderMan. Nous allons voir dans le chapitre suivant comment appliquer
précisément des transforamtions.
|