Sélectionner une page

Mandelbulb 3D : les voxels au pouvoir !

Ainsi donc, on peut désormais extirper les fractales de leur logiciel géniteur. Les Mandelbulbs sont sur le point de tuer le Père… C’était déjà possible avec Incendia, Xenodream, ContextFree mais on attendait avec impatience la disponibilité de cette fonction sur Mandelbulb3D. C’est chose faite avec cette version 1.7.6 où l’on peut (en principe) exporter ses créations au format .obj pour les utiliser ailleurs…

La procédure est loin d’être évidente et nécessite une machine (très) puissante. En dessous de 4 cœurs, passez votre chemin…

Et… Roule, boule, boule !

Les paysages fractals que l’on génère avec Mandelbulb3D sont déjà des objets 3D puisqu’on peut naviguer à l’intérieur. En fait, c’est la projection 3D d’espaces à 4 dimensions et même plus. Projection 3D elle même projetée en 2D sur l’écran de l’ordinateur… L’enjeu est de parvenir à récupérer l’espace 3D fractal pour en faire un « véritable » objet 3D manipulable dans d’autres logiciels. Cé possib !

L’astuce s’appelle la voxelisation. C’est finalement très simple : il suffit de découper le volume en petits cubes orthogonaux, de façon à obtenir une « julienne de fractales ». Plus les cubes sont petits, plus la définition et les détails du solide sont préservés.

Idéalement chaque cube doit avoir la taille d’un pixel. Il est devenu un pixol ! Qui se définit avec des coordonnées spatiales dans 3 dimensions. Bref, c’est un objet 3D dont la résolution dépend du degré de « décimation ».

Mandelbulbs émincées…

Jusqu’à présent, il existait 2 méthodes, fastidieuses, pour y parvenir.

La première, intégralement dans Mandelbulb3D, consiste à utiliser le module d’animation avec la caméra en vue de dessus et à zoomer (avec les bons réglages) jusqu’à traverser la mandelbulb de part en part.

Les animations étant rendues sous forme de collection d’images (plusieurs milliers), il suffit d’entrer ces images dans un logiciel capable d’interpréter la séquences d’images pour en faire un solide 3D. Un peu comme si on pouvait rescuciter un merlu à partir de tranches de poisson panées… Il en existe plusieurs dans le domaine scientifique et médical (c’est comme ça qu’on exploite les tomographies du cerveau, par exemple.)

L’autre méthode consiste à faire un certain nombre de rendus haute définition en modifiant à chaque fois le point de vue, de façon à faire le tour de l’objet qu’on veut « voxeliser ». On introduit ensuite ces images dans un logiciel qui reconstitue l’objet 3D en tenant compte des variations d’angle de chaque image. C’est assez magique. On peut même utiliser pour ce faire un logiciel du cloud : Autodesk 123D Catch (ex Photofly). Voici la procédure en détails (et en anglais…)

Tout cela fonctionne mais au prix d’efforts pharaoniques… D’où la jouissance mystique des fractalistes de tous poils à l’apparition de la voxelisation dans Mandelbulb3D

Des piles de voxels…

Voyons à quoi ressemble cette nouvelle fonction. On y accède depuis la fenêtre principale, onglet Utilities/VoxelStack. En cliquant sur le bouton « Import parameter from main » vous devriez voir apparaitre votre fractale découpée en tranches… Il faut faire un zoom arrière, avec le bouton du bas « Overall scale » jusque dans les valeurs 0,6 sinon la fractale est tronquée. Réglez le Z slices (par défaut à 100 mais je suis monté à 900…) qui détermine la finesse et la définition de l’objet final (plus les cubes seront petits plus l’objet sera lourd…). Lancez « Start rendering slices » : quelques milliers d’images vont s’empiler dans le dossier spécifié. On est contents. Et on en fait quoi de ces images, soigneusement numérotées ?

On souffle un grand coup car nous allons maintenant utiliser des logiciels encore plus exotiques pour traiter ces images. D’autres usines à gaz, dans l’usine à gaz…

 

Deux outils sont utiles pour cette tâche. Avec des fortunes diverses selon le poids de la fractale…  On peut télécharger ImageVis3D à l’université d’Utah… Ou Fiji.

Dans ImageVis3D, on clique à l’ouverture sur « Open Data Set from a Directory » et on désigne le dossier où sont les images. La machine mouline un certain temps et accouche d’une pile de 900x900x900 pixels qu’il faut ouvrir. Dans la boîte de dialogue, sélectionnez un endroit et un nom pour enregistrer un fichier temporaire « .uvf »… Le machin remouline… Interminablement… Et miracle : le solide fractal apparait dans une fenêtre et on peut jouer avec à la souris ! Il est à nous ! On le tient ! Presque…

D’abord parce que votre PC est déjà en train de chauffer comme un haut fourneau, ensuite parce que les voies du quadricœur sont impénétrables. Tentons donc d’enregistrer au format .obj… Il faut d’abord trouver le menu et on mesure une fois de plus la merveilleuse opacité de ces logiciels scientifiques. L’ensemble des menus, d’ailleurs, donne le vertige… Bref, je me suis fendu d’une copie d’écran pour aller droit au but. Menu Workspace/Isosurfaces settings qui donne accès aux réglages d’export et au bouton « export mesh »… Limpide n’est ce pas ?

Cliquez sur export et choisissez un nom de fichier (il faut rajouter.obj à la main), un lieu et le type : Wavefront Object File. Sauvez. Un dernier menu apparait pour régler le niveau de détail. De la plus basse résolution (56x56x56 pixols) à la plus haute (900 au cube)… Cliquez sur OK avec des destins différents suivant l’OS et le taux de silicium de votre machine. Vous pouvez voir du métal en fusion couler par les ouïes d’aération. Entendre vos ventilos en décollage vertical, regarder fumer vos processeurs (et ses frères), ou assister au plantage et au gel de la machine. A mi chemin du processus, on vous demande si vous voulez intégrer la surface. Et on répond oui. Si l’ordinateur n’est pas encore mort, il finit par enregistrer un monstrueux fichier .obj (j’en ai un, au musée de plus d’1 Go…).

Rendu aux Fiji…

Avec Fiji, c’est encore plus… Fidjien : File/Import/Image séquence. Cliquez sur OK. Ensuite « save as .PGM ». Aussitôt après, « Save as… Wavefront donne sur un menu. Localisez le fichier .PGM, Threshold à zéro et décochez les canaux bleu et vert. OK. Enregistrez, Priez… Il est parfois nécessaire de quitter Fiji pour que l’export se termine (les obj mal finis sont légions…).

 

Il est prudent de nettoyer l’obj, et d’essayer de diminuer sa taille, avec Meshlab, par exemple, autre outil gratuit, ou Hexagon. Bref, on récupère effectivement des objets 3D qu’on peut importer dans une foultitude de logiciels 3D pro ou moins pro, comme Carrara ou même Bryce.

Ici, extirpés de Mandelbulb3D, un composite Integer Power/Dodecahedron, voxelisé en 900×900 et son compagnon (originellement un composite Menger 4/Real Power) mais ayant souffert de l’accouchement. Reste ce paquet de tuyaux et de carton ondulé : si ça peut servir à quelqu’un…

C’est une satisfaction technique mais au final, on ne retrouve pas ce qui fait la magie des fractales 3D : leur niveau infini de détails. Et c’est là que le bât blesse : les fractales complexes aboutissent à des obj de plusieurs gigas, pratiquement inutilisables… Même les Mac’s se retrouvent à genoux… Et les détails ne sont pas aussi « détaillés » que dans Mandelbulb3D.

On s’en rend bien compte ici avec ce tronçon de fractale extrait de son environnement et rendu dans un logiciel 3D. Avec un niveau de voxelisation assez bas il est vrai, les modèles en plus haute définition atteignant les 10 Go… L’idéal serait de pouvoir simplifier (et donc alléger) à l’extrême les géométries pour les « retendre » ensuite avec un hypernurbs par exemple. Peut être est-ce possible avec Meshlab…

Quoiqu’il en soit, c’est trop tard : les mandelbulbs se sont échappées de la boîte et on ne reviendra pas en arrière…

Quels usages pour ces nouveaux solides ? L’imagination au pouvoir ! L’exploration continue…


 

Publié le Jan 13, 2012

Voir le site pro ?

Tous les tableaux

Tous les articles

7 Commentaires

  1. ccampion

    Bonjour Fran6,
    C’est super, incroyable ce que vous arrivez à faire !
    L’imagination aidant, vous obtenez de jolis résultats. il fallait essayer et vous êtes le seul à le faire.
    Bonne semaine à vous.

    Réponse
    • Francis Le Guen

      Merci Catherine. Mais vous savez, je ne suis pas seul à faire ça… J’apprends sans cesse.
      On vous envoye un peu de soleil de Marseille !

      Réponse
  2. Mr Aspirateur

    L’avant dernière image, le cube violet/rose est tout simplement superbe… une véritable oeuvre d’art.

    Réponse
    • Francis Le Guen

      Il s’agit d’un cube fractal Menger 4, retenant prisonnier une mandelbulb (Integer Power). En fait, c’est très facile à faire (fonction Combinate SS2).
      Heureux que ça vous intéresse. Avant de retourner en poussière, j’aspire à plaire…

      Réponse
  3. Warnotte Renaud

    Bon ca 🙂 Je cherchais il y a quelques mois comment réussir a avoir un « modèle 3D », merci des infos

    Réponse
    • Francis Le Guen

      Je pense que les softs vont évoluer dans ce sens… Pour l’instant, c’est encore une curiosité.

      Réponse
      • Warnotte Renaud

        Oui c’est possible. J’en ai personnellement fabriqué un en Java mais je n’ai pas encore l’export 3D, mais ca serait une bonne idée.

        Réponse

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *