
La géométrie constructive des solides ( GCS ; anciennement appelée géométrie binaire computationnelle des solides ) est une technique utilisée en modélisation 3D . Elle permet de créer une surface ou un objet complexe en combinant des objets plus simples à l'aide d'opérateurs booléens , générant ainsi potentiellement des objets visuellement complexes à partir de quelques formes primitives
En infographie 3D et en CAO , la génération de structures complexes (CSG) est souvent utilisée dans la modélisation procédurale . La CSG peut également être appliquée à des maillages polygonaux et peut être procédurale et/ou paramétrique.
La CSG peut être opposée à la modélisation par maillage polygonal , à la représentation des limites et à la modélisation par boîte .
Fonctionnement
Les objets solides les plus simples utilisés pour la représentation sont appelés primitives géométriques . Il s'agit généralement d'objets de forme simple : parallélépipèdes rectangles , cylindres , prismes , pyramides , sphères , cônes . L'ensemble des primitives autorisées est limité par chaque logiciel. Certains logiciels permettent la représentation géométrique 3D (CSG) d'objets courbes, tandis que d'autres ne le permettent pas.
Un objet est construit à partir de primitives au moyen d'opérations autorisées , qui sont généralement des opérations booléennes sur des ensembles : union (OU), intersection (ET) et différence (NON), ainsi que des transformations géométriques de ces ensembles.
Une primitive peut généralement être décrite par une procédure qui accepte un certain nombre de paramètres ; par exemple, une sphère peut être décrite par les coordonnées de son centre, ainsi que par la valeur de son rayon. Ces primitives peuvent être combinées en objets composés à l’aide d’opérations comme celles-ci :
- Différence soustraite d'un objet à un autre
- Partie commune à l'intersection des deux objets
En combinant ces opérations élémentaires, il est possible de construire des objets d'une grande complexité à partir d'objets simples.
lancer de rayons
Le rendu de la géométrie constructive des solides est particulièrement simple avec le lancer de rayons . Les traceurs de rayons tracent un rayon qui intersecte les deux primitives sur lesquelles l'opération est effectuée, appliquent l'opérateur aux intervalles d'intersection le long du rayon 1D, puis prennent comme résultat le point le plus proche de la caméra le long du rayon.
Applications

La géométrie constructive des solides (GCS) a de nombreuses applications pratiques. Elle est utilisée lorsque l'on souhaite créer des objets géométriques simples ou lorsque la précision mathématique est importante. Presque tous les logiciels de CAO en ingénierie utilisent la GCS (où elle peut s'avérer utile pour représenter les coupes d'outils et les assemblages de pièces).
Les moteurs Quake et Unreal Engine utilisent ce système, tout comme Hammer (l'éditeur de niveaux natif du moteur Source ) et Torque Game Engine / Torque Game Engine Advanced . La génération de géométrie complexe (CSG) est populaire car elle permet de créer des géométries très complexes à partir d'un ensemble d'objets relativement simples. Lorsque la CSG est procédurale ou paramétrique, l'utilisateur peut modifier sa géométrie complexe en changeant la position des objets ou l'opération booléenne utilisée pour les combiner.
L'un des avantages de la CSG est qu'elle permet de garantir facilement la solidité ou l'étanchéité des objets si toutes les formes primitives sont étanches. Ceci peut s'avérer important pour certaines applications de calcul en ingénierie ou en fabrication. En revanche, la création de géométries à partir de représentations de frontières exige des données topologiques supplémentaires ou des contrôles de cohérence pour s'assurer que la description de frontière donnée spécifie un objet solide valide.
L'un des avantages des formes CSG est qu'il est facile de classer des points quelconques comme étant à l'intérieur ou à l'extérieur de la forme créée par CSG. Le point est simplement classé par rapport à toutes les primitives sous-jacentes et l'expression booléenne résultante est évaluée. Cette propriété est particulièrement intéressante pour certaines applications telles que le lancer de rayons .
Conversion de maillages en CSG
Les modèles CSG, paramétrés par construction, sont souvent préférables aux maillages classiques pour les applications visant à fabriquer des modèles personnalisés. Dans ce contexte, il peut être intéressant de convertir des maillages existants en arbres CSG. Ce problème de conversion automatique de maillages en arbres CSG est appelé CSG inverse .
L'arbre CSG résultant doit occuper le même volume dans l'espace 3D que le maillage d'entrée, tout en comportant un nombre minimal de nœuds. Des solutions simples sont privilégiées afin de faciliter l'édition du modèle final. La résolution de ce problème est complexe en raison du vaste espace de recherche à explorer. Elle combine des paramètres continus, tels que les dimensions et la taille des formes primitives, et des paramètres discrets, tels que les opérateurs booléens utilisés pour construire l'arbre CSG final.
Les méthodes déductives résolvent ce problème en construisant un ensemble de demi-espaces qui décrivent l'intérieur de la géométrie. Ces demi-espaces sont utilisés pour décrire des primitives qui peuvent être combinées pour obtenir le modèle final.
Une autre approche consiste à dissocier la détection des formes primitives et le calcul de l'arbre CSG qui définit le modèle final. Cette approche exploite la capacité des outils modernes de synthèse de programmes à trouver un arbre CSG de complexité minimale.
Il existe également des approches qui utilisent des algorithmes génétiques pour optimiser de manière itérative une forme initiale vers la forme du maillage souhaité.