Sélectionner une page

Fractales : des Mandelbulbs avec Blender

Nous l’avions déjà expliqué dans ce billet sur les fractales et les logiciels 3D, et rappelé récemment ici : au départ du nouveau « volume cube » diaphane des versions alpha 3.3 et 3.4 de Blender, il est possible de se frotter à la génération de fractales en volume avec Geometry Nodes !

C’est une avancée majeure même si elle entérine le lent glissement de la modélisation « intuitive », additive, destructive et sculpturale vers cette modélisation 2.0 basée sur l’abstraction mathématique, le conceptuel, le procédural et le réutilisable. L’éternel débat entre les artistes / gens de lettres et les scientifiques / matheux… Moins de glaise, plus de formules. On peut le regretter mais c’est ainsi et les logiciels les plus en pointe aujourd’hui utilisent tous ces nodes et ces mathématiques, matrices et trigonométrie… Artistes, vous pouvez pleurez : vous ne servez plus à rien !

La potion magique

C’est l’occasion de faire avaler à Blender la formule mathématique secrète de « l’ensemble de Mandelbrot en 3D », le graal découvert par David White il y a… déjà longtemps et affublé du sobriquet de « Mandelbulb ». Voici donc la formule que j’ai utilisée, révélée par Inigo Quilez :

// extract polar coordinates
float wr = sqrt(dot(w,w));
float wo = acos(w.y/wr);
float wi = atan(w.x,w.z);

// scale and rotate the point
wr = pow( wr, 8.0 ); »
wo = wo * 8.0; »
wi = wi * 8.0; »

// convert back to cartesian coordinates
w.x = wr * sin(wo)*sin(wi);
w.y = wr * cos(wo);
w.z = wr * sin(wo)*cos(wi);

Reste à traduire ce brouet mathématique dans GeoNodes ce qui est… un jeu d’enfants. Inutile de dire que si mes propres enfants avaient joué comme çà, j’aurais été les faire piquer direct !

Toujours est-il que voici la copie d’écran du Graal, avec les valeurs modifiables, s’il vous plait : la « puissance » de la fractale (historiquement 8) et la définition à l’écran, en réglant le nombres de voxels du volume cube.

Au delà de 500, c’est à vos risques et périls. J’ai pu monter jusqu’à 1000, mais après j’ai tout gelé pour de longues années… Dans leur grande sagesse, les programmeurs de Blender ont muni GeoNodes d’un calculateur qui affiche des valeurs au dessus de chaque node et surtout du node final.

Eh oui : pour constater le temps qu’il aura fallut pour calculer le bazar. Après coup. Ben oui, avant, tout plante. Donc, à « 1000 » ma machine a mis 175685 millisecondes à calculer l’affichage. J’aime cette précision ! Presque trois minutes, quoi. Je ne vous parle pas du temps de rendu…

A première vue tout cela parait simple mais, minute papillon : voici ce que cache chaque node composite « Node Group » ! Vous avez intérêt à réviser vos raccourcis…

Alors voilà, utilisant le « look – dev », une méthode de rendu écran rapide plus ou moins imbitable basée sur quelques HDRI « MatCaps », voici les rendus écran de quelques puissances classiques de la Mandelbulb : 3, 5, 12…

Trompettes ! Si.

 

 

 

J’ai rendu les mandelboules !

Enfin, à l’aide de matériaux un peu plus chiadés avec occlusion ambiante, diffusion sous-surfacique et toutes sortes de nodes exotiques et surtout un rendu décent avec le moteur de rendu CPU Cycles, voici sous vos yeux ébahis d’autres créatures avec différents angles et valeurs de zoom.

On commence dans le chou fleur et on monte en puissance… 🙂

Finissons en par l’ajout d’un modificateur « Wireframe » pour obtenir ces soutifs et petites culottes tirebouchonnées en véritable dentelle de Jouy, avec armatures, baudriers, ceintrages, bonnets, attaches, noeuds, menottes, parachute ou scoubidous, plus belles conquêtes de la femme libérée, corsetée dans ces colifichets d’un autre âge…

Voilà. Je suis fier comme un bar-tabac. C’est tout pour le moment ! Reste à adapter la même recette pour d’autres types de fractales : tapis de Sierpinsky, « Burning Ship » et tous leurs petits camarades. Ce n’est pas gagné !

 

 

Publié le Août 10, 2022

Voir le site pro ?

Tous les tableaux

Tous les articles

0 commentaires