[quote="oursduluberon"]
Peste
![Lips Sealed :-X](./images/smilies/lipsrsealed.gif)
. Comme ce que tu nous explique et qui te semble familier est pour moi totalement abscons.
En tout cas amuse toi bien !
[/quote]
C'est vrai que je suis tellement habitué à faire de la 3D que je pense que tout le monde sait !
Il y a deux types de logiciels 3D :
- les logiciels de modélisation, comme Sketchup ou Blender, que je n'utilise pas, leur philosophie ne me convenant pas, ou OpenSCAD et FreeCAD que j'utilise ;
- es logiciels de rendu type photographique qui utilisent, pour la plupart, ce que l'on appelle le lancer de rayon.
lPOVRay et ses avatars type UBERPov ou MegaPOV font parti de ceux là.
Ils fonctionnent comme une caméra photographique à l'envers.
Une caméra classique récupère les rayons lumineux renvoyés par les objets et les utilise pour impressionner la surface sensible, film pour l'argentique, capteur pour le numérique.
Ici, grosso modo, la caméra lance des rayons qui sont interceptés ou réfléchis par les objets, le tout en fonction de l'éclairage que l'on a mis en place.
Un petit exemple : un mur percé de fenêtres et d'une parte.
Un mur, c'est un parallélépipède bâti avec un certain matériaux. Dans POVRay on le définit par ce code :
box {
<-3, 0, 0> <3, 3, 0.3>
}
Les coordonnées x, y et z représentent respectivement la longueur, la hauteur et la profondeur des sommets : ici le mur s'étend de -3 à 3 m (si, comme moi, on a défini le mètre comme unité de mesure), fait 3 m de haut et 30 cm de profondeur.
Pour ajouter le matériaux, on utilise le mot-clé texture. Ici je me suis contenté 'une couleur jaune, mais on peut avoir des textures particulièrement compliquées. Ce qui nous donne :
box {
<-3.5, 0, 0> <3.5, 3, 0.3>
texture {
pigment {
Yellow
}
}
}
Et voici la scène obtenue (je n'ai pas reproduis les définitions de l'environnement, ni de l'éclairage ni de la caméra) :
[attachimg=1]
On va alors enlever la porte et les fenêtres en faisant la différence entre notre mur et les parallélépipède représentant ces éléments : ils sont un peu plus épais que l e mur et placé un peu en avant pour vraiment faire un trou :
difference {
box {
<-3.5, 0, 0> <3.5, 3, 0.3>
texture {
pigment {
Yellow
}
}
}
box {
<-0.5, 0, -0.1> <0.5, 2.2, 0.4> // La porte
}
box {
<-3, 1, -0.1> <-1.8, 2.2, 0.4> // Fenêtre de gauche
}
box {
<1.8, 1, -0.1> <3, 2.2, 0.4> // Fenêtre de gauche
}
}
[attachimg=2]