Exporter les fractales de Mandelbulb3D avec BulbTracer 2

Accueil / Fractales / Exporter les fractales de Mandelbulb3D avec BulbTracer 2

Le grand sport actuellement est de faire sortir les fractales de la boîte de Pandore. Des boîtes plutôt, en fonction des logiciels utilisés. Nous avons vu comment faire avec JWildfire et Incendia : voici le tour de Mandelbulb3D !

 

Il fallait bien se recolleter un jour avec ce logiciel certes inégalé mais dont le développement à été abandonné depuis des années par son créateur, un certain Jesse… Et tout le monde tend le dos en attendant l’erreur définitive, au gré des mises à jour des différents OS. Andréas Maschke lui-même (le créateur de JWIldfire) en avait repris le développement avant de jeter l’éponge devant le langage de programmation obsolète, qualifiant ce soft de « dead piece of flesh »… Cette appli est prévue à l’origine pour tourner avec Windaube mais j’ai pu la faire fonctionner (plus ou moins bien) sur Mac avec Wine selon la procédure expliquée précédemment.

Le Tricorne

Pour mes essais je suis parti d’une fractale simple, la Tricorn, aussi appelé ensemble de Mandelbar. C’est un objet mathématique fascinant, très proche dans sa construction de l’ensemble de Mandelbrot avec une richesse visuelle comparable mais avec des motifs géométriques distincts. Il a été découvert en 1989 par W. D. Crowe, R. Hasson, P. J. Rippon et P. E. D. Strain-Clark qui étudiaient les analogues antiholomorphes du célèbre ensemble de Mandelbrot. Le Tricorn est en effet défini par la famille de polynômes quadratiques antiholomorphes suivante :

c est un paramètre complexe et _z désigne le conjugué complexe de z. Pour chaque , on étudie l’orbite du point critique 0 sous l’itération de . Le Tricorn est alors l’ensemble des valeurs de pour lesquelles cette orbite reste bornée, c’est-à-dire ne diverge pas vers l’infini.

Ceci est analogue à la définition du Mandelbrot, mais la fonction utilisée ici est antiholomorphe (elle conjugue _ avant de l’élever au carré, au lieu de l’utiliser directement). Cette subtile différence conduit à une allure totalement différente : le Tricorn possède une forme caractéristique à trois « cornes » (d’où son nom), qui se répètent à différentes échelles, à l’instar de la structure auto-similaire du Mandelbrot.

Un fond blanc, une rapide texturage caramel et voici la fractale dont on commence à voir l’autosimilarité du côté de la pointe, à gauche. L’ensemble rappelle d’ailleurs confusément celui de Mandelbrot, si on pratique une coupe horizontale. Mais ce n’est pas le propos : il s’agit cette fois d’exporter cette fractale vers un format 3D utilisable.

La fractale Tricorn d’origine dans Mandelbulb3D.

Exportons !

Il faut utiliser pour cela le module BTracer 2 qui va découper la fractale en cubes. Plus ils sont petits, évidement, et plus la forme sera détaillée mais plus le temps de calcul sera long. Après de décourageants essais, voici quelques pistes concernant les réglages à adopter pour l’export…

Les points importants sont la taille des voxels (entre 1000 et 1500) et le niveau de détails (entre 0,5 et 1,5). Et vous réglez allègrement à 0.5 pour un maximum de détails. Faux. Raté ! Souvenez-vous que le programmeur démissionnaire de ce soft, pour génial qu’il fût était câblé à l’envers. Donc, la valeur 0,5 au lieu d’une augmentation des détails attendus, aboutit à une bouillie lissée. Un chewing-gum usé. La bonne valeur est dans l’autre sens : 1,5 ! Encore des heures de perdues…

Il semble que des résultats encore meilleurs soient obtenus en réglant ce paramètre (Surface detail – point smooth) sur 3 mais armez-vous de patience ! Il faut aussi cocher la case « close mesh », pour essayer de boucler la forme et « Calculate color » pour ajouter les informations de couleur. Et bien sûr choisir le format « nuage de points » pour l’export.

Avec ces réglages, l’export en .ply prend 3h. Après un petit détour par Meshlab pour changer le format .ply en .obj afin de comparer les différents réglages…

Reste à rétablir la texture d’origine et c’est là que le format .ply prend tout son sens comme nous l’avions vu avec JWildfire. Après avoir créé un nouveau matériau, on récupère ainsi la texture créée dans Mandelbulb3D

Comme toujours, on est loin des formes fractales d’origine, par définition plus détaillées : c’est le jeu ma pauvre Lucette ! J’ai décimé et optimisé tout cela directement dans Blender mais on peu aussi utiliser Meshlab et voici l’un des « workflow » utilisés…

Dans Meshlab

Le but est d’atteindre 1 million de faces (au lieu des 10 millions originels) sans trop de pertes de détails, pour une bonne fluidité d’utilisation dans les logiciels 3D. On diminue le nombre de polygones avec la fonction « Quadric Edge Collapse » avec les valeurs par défaut mais en activant « Preserve Topology » et « Preserve Normals ». Et on lisse à chaque étape avec une ou plusieurs applications du filtre « HC Laplacian ».

Tout ceci se fait « au doigt mouillé », en contrôlant l’aspect de la forme dans l’écran principal. Enfin, on exporte en .dae (Collada) pour garder les informations de couleur… Cela dit, ça marche aussi très bien en .obj…

Je suis petit, léger mais encore très Tricorn !

Tracer en 64 bits !

Le package du logiciel (version Mandelbulb3Dv199sr37) contient d’autres trésors si on prend le temps d’y regarder de plus près. d’abord un mode d’emploi en .pdf du nouveau BTracer2, bien utile et surtout une autre application BTrace en… 64 bits ! Le « workflow » change alors complètement et de manière déroutante. Mais, comme s’en explique Andréas, le passage en 64 bits de l’appli « BTrace » se chiffrait déjà en semaines voire en mois ; alors développer le logiciel principal en 64 bits prendrait des années ce qui n’est pas envisageable. Donc, le processus est en quelque sorte coupé en deux, de façon à bénéficier tout de même un peu d’une accélération lors de la génération des objets 3D.

La procédure devient alors :

Travailler dans Mandelbulb3D et le BTracer2 d’origine pour préparer l’export mais cette fois en cache « .btr2cache ». En s’aidant de la prévisualisation OpenGL en détermine le meilleur couple voxel/surface détail qui est différent pour chaque fractale ! D’ou les essais, les yeux injectés de sang. Il n’y a pas d’autre façon de faire ni de préréglage idéal : c’est comme çà ! Les valeurs vont de 512 x 3 à 1500 x 3 pour les voxels (c’est bien entendu de plus en plus long – on travaille au cube…) et de -0,1 à 3 et plus pour les détails de surface…

Seul avantage : on peut sauver de nombreuses fois les variations dans le même fichier cache, ce qui fait gagner du temps. Quand c’est cuit, il faut ouvrir la nouvelle application et y importer le fichier cache. Et lancer cette fois l’export de l’objet définitif ce qui est, tous soucis confondus, plus rapide que l’ancienne méthode…

C’est viral !

On se prend vite au jeu et voici donc quelques-unes de mes fractales exportées et utilisées dans Blender… Je continue d’abord avec des variations du Tricorn pris comme exemple avec une nette propension à la coronaviralité (je suis traumatisé).

La texture d’origine n’est pas toujours respectée (c’est un bug) mais on peut modifier celle-ci sous bien des aspects dans Blender : c’est l’un des intérêts de travailler en « vraie » 3D.

Je suis un variant. Très contagieux ! Forcément…

Oui, je suis un objet 3D .obj !

 

Bouillon de culture.

 

Et pour finir, ce cube de Menger « SMT ».

 

Dès lors, pour célébrer cette victoire sur des softs spécialisés plus ingrats les uns que le autres, rien ne nous empêche de danser un peu de House au milieu des cubes… De Menger ! 🙂

 

Publié le Juin 27, 2025

Catégories

0 commentaires