Chapiter 3 : Combinaison des solides
POVRay offre plusieurs méthodes permettant de combiner les solides entre eux. Ces opérations sont plus connues sous la dénomination
CSG (Constructive Solid Geometry).
3.1 Intérieur, extérieur et surface...
Un solide défini un "intérieur". Tout ce qui n'appartient pas au solide est appelé "extérieur". La limite entre intérieur et extérieur est appelé "surface". Tout cela se comprend sans peine et est facile à imaginer. Nos pauvres ordinateurs n'ayant pas encore cette capacité, il a fallu trouver un moyen pour modéliser les solides et les surfaces. Nous n'avons à l'heure actuelle que les nombres pour réaliser cette modélisation. Et comme vous le savez, la précison des calculs est limitée !
Tout ceci pour expliquer que nous ne pouvons différencier l'intérieur de l'extérieur d'un solide qu'à la précision des calculs près. Nous le verrons plus loin, cette limitation est IMPORTANTE et peut causer quelles mauvaises surprises.
3.2 A quoi sert le combinaison des solides ?
Et bien à créer les solides complexes à partir de formes simples. Une fois créés on peut alors appliquer facilement toutes les transformations de formes, de position et de matière (couleurs, état de surface, indice de réfraction...), à tout les solides combinés en un seule opération.
3.3 Opérations de combinaison
Les cinq opérations que POVRay nous offre sont : l'union
union { } , l'intersection
intersection { } , la différence
difference { } , la fusion
merge { } et l'inversion
inverse. Cette dernière est plutôt un complément aux quatres autres.
3.4 Objets utilisés
Pour les exemples nous utiliserons les deux objets ci-dessous : |
 Un cylindre A |
 Une sphère B |
3.5 Union
L'union union { } , permet "d'ajouter" deux ou plusieurs solides afin d'en créer un nouveau. L'exemple ci-dessous montre l'union du cylindre et de la sphère : |
 union sphere et cylindre |
 union sphere et cylindre avec transparence |
L'image de droite montre l'union avec les solides transparents. Comme vous pouvez le constater, les parties communes aux deux solides sont toujours existantes. La syntaxe est : union { cylinder { } sphere { } }
L'union correspond à l'opérateur booléen OR : C = A OR B. |
3.6 Intersection
L'intersection intersection { } , crée un solide formé par l'ensemble des points communs au deux solides. L'exemple ci-dessous montre l'intersection du cylindre et de la sphère. |
 intersection sphere cylindre |
 Avec la sphère et le cylindre an transparence. |
3.7 Différence
La différence difference { } , crée un solide formé par l'ensemble des points qui appartiennent au premier solide mais pas au deuxième. La soustraction n'est pas commutative. L'ordre est important. |
 Sphere moins Cylindre |
 Cylindre moins Sphère |
3.8 Fusion/Merge
Nous avons vu plus haut que l'union "garde" les deux solides. L'opération merge { } élimine les surfaces intérieure. Le résultat n'est visible que si les solides sont transparents. |
 Fusion sphère et cylindre |
L'union correspond à l'opérateur booléen XOR : C = A ⊕ B. |
3.9 Inverse
Lorsque
inverse { } est utilisé, l'intérieur et l'extérieur du solide sont inversés.