Fractales : des arbres de Pythagore avec Blender

Accueil / Graphisme / 3D / Fractales : des arbres de Pythagore avec Blender

Pour générer des fractales il n’y avait pas jusqu’à présent trente six solutions : il fallait utiliser les logiciels dédiés comme Incendia, JWildfire, Mandelbulber, Mandelbul3D, Ultrafractal, Vision of chaos… avec les limitations propres à chacun de ces logiciels et leurs logiques et formats propres qui empêchaient dans la pratique toute amélioration de leurs résultats.
Ce n’est plus le cas aujourd’hui puisque la plupart des logiciels 3D permettent plus ou moins facilement de créer ce genre de structures.

Revenons sur l’arbre de Pythagore ; un type de fractale bien connue auxquelles se rattachent les apolloniennes, les quasi-fuschiennes, les fractales de Klein et autres à l’origine de la création sur MandelBulb3D de la fractale Drakkar en vente naturellement sur la boutique.

Structurons !

Tout repose sur le principe de l’itération. Comme son nom l’indique il s’agit de répéter (à l’infini ?) une structure initiale. C’est le secret même des fractales.

Et, en l’occurence, il est possible de créer ces arbres de Pythaghore dans Blender, grâce à Geometry Nodes ! C’est le moment de faire intervenir le node miracle, parfaitement adapté pour cette utilisation : « Repeat Zone ». Un node nouveau dont l’affreux coffrage marron-chiasse suggère déjà qu’on peut le remplir avec tout un tas de cochonneries…

Le secret consiste à créer des « objets neutres » (invisibles) et à les glisser dans la fenêtre de Geometry Nodes où ils deviennent les nodes de couleur carmin « Object Info ». Ce sont eux qui piloteront nos courbes directrices. Le principe est très simple : à l’extrémité d’une première droite (le tronc), on place deux autres droites en angle aigu d’une longueur et d’un angle réglable (les branches). Et on « repeat » cette opération !

Après quelques manipulations cabalistiques, voici ce que donne notre système muni de ses les deux variables essentielles : le nombre d’itérations et la taille des branches.

Il est temps de faire croître les branches puis les feuilles selon le nombre d’itérations pour retrouver la magie de l’arbre de Pythagore. Notons au passage que le brave Pythagore n’a rien à voir avec ce type de fractales qui ont été nommées ainsi à titre d’hommage posthume. Illogique mais habituel : on n’a pas le cul sorti des ronces…

Vous noterez qu’il suffit maintenant de simplement bouger la position des « objets neutres » pour que la fractale change de forme. De quoi déjà imaginer de futures animations…

Barnsley ? Dénonce-toi !

Avec dix itérations et une longueur de 0,7 on peut déjà générer toutes sortes d’arbres et des feuilles qui ne sont pas sans rappeler les fractales de Barnsley. En effet, dans le vaste monde des fractales on retrouve souvent des objets familiers et ce type de filiation…

Mais nos arbres sont pour l’instant sans consistance (une simple courbe vectorielle) et en 2D, alignés sur le plan où sont situés les « objets neutres ». Il est temps de passer à la 3D. En ajoutant d’abord un troisième objet neutre !

Cette fois, en jouant sur les positions respectives des 3 objets neutres, on obtient toutes sortes de structures fractales. Reste à les habiller avec une forme de base qui sera dupliquée en fonction du nombre d’itérations et en suivant ces courbes. On utilise typiquement une sphère mais on peut essayer aussi toutes sortes d’objets 3D, des plus simples aux plus complexes ! C’est cette souplesse que permet la « modélisation procédurale » dont nous nous entretenons souvent ici…

Optimisons !

A ce stade, il est recommandé d’optimiser le modèle. En effet, au fur et à mesure des itérations, la subdivision des sphères (leur nombre de faces) et celle des autres objets reste la même, ce qui est beaucoup trop pour les billes qui deviennent de plus en plus petites. En résulte un ralentissement insupportable des visualisations et un « poids » du modèle superfétatoire.

Au prix d’opérations douloureuses et pour garantir la fluidité du bazar, on utilise à cet effet une série de « comparateurs » mathématiques qui ont pour but de ramener les petites sphères (ou autres objets) à des subdivisions raisonnables.

Le gain est considérable comme on peut le voir : pour un système donné on passe de 1.4 millions de faces à 190.000 ce que l’ordinateur peut en principe encaisser…

Au passage, je ne voudrais pas vous casser le moral mais voici un aperçu du plat de spaghetti dans GeoNodes qui permet de générer des fractales de Pythagore avec tout le confort moderne… Je vous fait grâce du même plat de spaghetti de l’onglet « shading » pour paramétrer les matériaux…

Texturons !

Reste à installer le système dans un « studio » avec plancher, fond, éclairages. Par pure fainéantise j’ai utilisé le même fond, les mêmes matériaux et les mêmes éclairages que le billet précédent sur les attracteurs étranges d’où les similitudes de chroma et de luminosité. On appellera çà un style !

Et bien entendu il faut appliquer des textures pour « habiller » les modèles obtenus ! Premier essais avec un matériau en verre. Je l’avais sous la main, pour les mêmes raisons évoquées plus haut… 🙂

Sans efforts, quand on fait varier le nombre d’itérations, on obtient quantité de formes différentes comme on le voit ci-dessous. Autre avantage des techniques « procédurales »…

Petit détour par la possibilité de faire varier les couleurs en fonction du nombre d’itérations et donc d’obtenir un panachage des teintes, très classieux lors des animations. Combiné comme il se doit avec l’occlusion ambiante réglable qui donne un réalisme supérieur en ajoutant des ombres à la jonction des objets.

Petit problème : les textures appliquées (pour créer du relief de surface par exemple – Bruits de Perlin, de Musgrave ou encore de Voronoï…) le sont sur le modèle dans son ensemble et non proportionnellement à la taille des objets itérés le constituant. Ce qui est laid, d’abord, et pose ensuite des problèmes lors des animations : l’effet obtenu est totalement artificiel. On s’en sort en créant une texture UV qu’on paramètre dans GeoNodes avant de l’appeler dans l’éditeur de matériaux…

Voici d’autres essais avec des sphères et divers matériaux plus ou moins complexes…

Muni de toutes ces subtilités, en jouant sur le nombre d’itérations (et la position spatiale des objets neutres), c’est ainsi que j’ai obtenu mes premiers arbres…

 

Jouons !

Mais il est temps de varier les formes de la figure en ajustant la position des 3 « objets neutres » ! Et pourquoi pas 4 objets neutres ? De façon à obtenir toutes sortes de fractales… On peut aussi changer de forme primitive. Et pourquoi pas partir d’un cube ? D’un prisme ? Soyons fous – d’une éponge de Menger, ou d’une Mandelbulb ? Ou encore d’une sphère trouée comme vu ici ? J’ai utilisé à ce propos les process « Dual Mesh » comme vu dans le billet mais aussi l’excellentissime addon » « Tissue » d’Alessandro Zomparelli.

Voici quelques déclinaisons du procédé, issues de mon cerveau malade. Et bien, itérez, maintenant !

Icosahèdre en technique « fil de fer » mais en verre. Si !

Avec une Mandelbulb. Cette vague protéine, ce virus coronaconcon qui provoquerait bien une nouvelle plandémie de toutes les couleurs…

Sphères en Dual Mesh et « fil de fer »…

 

 

 

Publié le Juin 19, 2024

Catégories

0 commentaires