vers l'index général de l'aide
Créer une forme d'aspect organique, par un assemblage de sphères et de cylindres qui ont l'air de s'engluer les uns dans les autres.
POV-Ray 2.0 +sup.
POV-Ray 3.0 +sup. : composant cylindrique, nouvelle syntaxe ("sphere" au lieu de "component")
blob { threshold Seuil // décimal sphere {<Position>,Rayon, Force ...} //Force : décimal cylinder {<Point1>,<Point2>,Rayon, Force ...} //Force : décimal sturm // booléen hierarchy // booléen [modificateurs...] }
Les composants qui peuvent faire partie d'un blob sont des sphères et des cylindres auxquels est ajouté un paramètre de "force". Cette force prend sa valeur nominale (celle que vous avez spécifiée) au centre ou sur l'axe du composant, puis décroît progressivement jusqu'à devenir nulle à la surface extérieure du composant.
On peut se représenter un blob comme un ensemble de champs magnétiques de forme sphérique ou cylindrique. Par la combinaison des champs de force des différents composants, chaque point de l'espace occupé par un blob prend une valeur de "force" qui dépend de la "force" et de la proximité des composants.
La surface apparente d'un blob est l'ensemble des points dont la valeur de "force" est égale à la valeur de seuil spécifiée après threshold. C'est en quelque sorte la matérialisation d'un niveau donné du "champ magnétique", la valeur de threshold permettant de régler ce niveau.
Le threshold doit être positif, mais on peut très bien donner une "force" négative, ce qui aura pour effet de créer un composant "repoussant", qui grignotera le champ de force des autres, au lieu de s'y ajouter.
Le mot clé hierarchy permet d'activer/désactiver le système de boîtes d'optimisation interne aux blobs. La valeur par défaut est on.
Si vous voyez apparaître des petits pixels aléatoires non désirés sur votre blob, ou s'il ne se matérialise pas comme il devrait, activez le mot clé sturm, qui enclenchera alors des calculs plus précis (mais un chouia plus lents).
#declare Seuil=... //placer une valeur blob { threshold Seuil sphere {<0,0,10>,15,1} sphere {<0,0,-10>,15,1} }
![]() |
![]() |
L'image ci-dessus montre le blob du code avec différentes valeurs de threshold. Les sphères blanches transparentes montrent les composants avec leurs rayons réels. Afin que l'effet de "glu" apparaisse, il est nécessaire que les composants "entiers" se chevauchent. À l'intérieur, on voit, en coupe, trois blobs générés par ces deux sphères : le vert a un threshold de 0.4, l'orange 0.6, et le bleu 0.8.
Ajoutons un cylindre au système.
#declare Seuil=... //placer une valeur blob { threshold Seuil sphere {<0,0,10>,15,1} sphere {<0,0,-10>,15,1} cylinder {<0,-15,25>,<0,15,25>,10,1} }
![]() |
![]() |
Remarquez de quelle façon le blob dépasse du composant cylindrique. Il faut en fait imaginer qu'une sphère, du même rayon que le cylindre, est ajoutée à chacune des extrémités de l'axe.
On peut, comme pour tout objet, spécifier un matériau général pour tout le blob, mais on peut également spécifier une texture (pigment, normal et finish) différente pour chaque composant, la texture en un point d'un blob étant issue du mélange de plusieurs textures. Attention : en toute logique, un seul interior est admis pour l'ensemble du blob.
Son intérieur et son extérieur étant parfaitement bien définis, un blob fonctionne sans problèmes dans une opération de CSG.
Le mot "blob" provient du titre d'un navet américain, un thriller intitulé "the blob", où une créature visqueuse venue de l'espace augmente sans cesse de volume et se propage en détruisant tout sur son passage.
Rédacteur: Fabien Mosen