Sélectionner une page

Fractales et 3D

En dehors de Mandelbulb3D et Mandelbulber, point de salut pour générer et surtout combiner entre elles les fameuses fractales en 3D « solides » qui nous occupent depuis quelques années. Encore qu’il soit possible d’en fabriquer à l’aide des autres logiciels de génération de fractales : JWildfire, Ultrafractal et sans doute Incendia. Egalement quelques applis qui existent pour iOS.

Avec ces logiciels on peut produire avec un grand niveau de détails des images fixes, des animations et même imprimer les fractales en 3D. J’expliquais sur ce blog les différentes méthodes d’export et de voxelisation pour Mandelbulb3D à destination de l’impression 3D. Mais là où le bât blesse, c’est quand on veut exporter ces solides dans d’autres logiciels de 3D. Avec le même niveau de détails, c’est tout bonnement impossible. Car, pour « solides » qu’ils paraissent dans les fenêtres des logiciels, les « mandelboules » sont en fait des extrapolations mathématiques qui n’ont pas, contrairement aux apparences, d’existence « réelle ». Ce ne sont même pas des nuages de points encore que ce soit justement la méthode utilisée pour les imprimer… C’est un peu confus, je sais, et seuls les spécialistes de la 3D s’y retrouveront…

Les geeks de tous poils se sont donc lancés, à grand renfort de mathématiques et de nombres complexes, dans la quête du rendu des Mandelballes dans la plupart des logiciels de 3D. Mais, la plupart du temps, il ne s’agit toujours pas de « vrais » objets 3D mais de « shaders » qui se crééent par conséquent dans l’interface des nodes shaders (les matériaux nodaux)… Beaucoup aussi, grâce à la génération de millions de particules ordonnées. C’est un peu déroutant, pour le moins. Mais, pas de doute, les fractales en 3D sont bien en train de s’échapper du moule… Voici les différentes pistes actuelles.

Autodesk Maya

Dans Maya, comme nous l’avions déjà publié, il est possible de s’en sortir avec l’outil de simulation de fluides.

 

 

 

 

 

Ou via le moteur de rendu Arnold :

 

AWS ThinkBox Krakatoa – Cinema 4D ++

Dans Cinema 4D avec Think Particles et Krakatoa (un moteur de rendu de particules de la mort qui tue)

 

 

 

 

Solid Angle Arnold Renderer – Cinema 4D ++

Toujours dans Cinema 4D (ou autres logiciels supportés) et avec le très complet et très pro moteur de rendu Arnold Renderer...

 

 

 

 

 

Houdini

Avec cette fois la fonction VEX de ce logiciel ultra pro…

 

 

 

 

 

 

Octane | Vectron – Cinema 4D

Dans Cinema 4D, grâce au moteur de rendu additionnel Octane Render, il est possible de générer toutes sortes de fractales dans des shaders volumiques « Vectron ».

Des pistes existent pour intégrer sous forme d’équations plus ou moins complexes dans un volume « Vectron » toutes les fractales que nous avons l’habitude d’utiliser mais avec toutes les fonctions supplémentaires qu’apportent les « vrais » logiciels de 3D… C’est un domaine en plein exploration à l’heure où j’écris ces lignes…

Voici les formules magiques « Vectron » élaborées par Andreas Maschke.

Il existe pléthore de tutoriaux disponibles. En voici un, à l’accent autrichien :

 

Et un autre, plus « anglais »… Yeh !

Lightwave 3D

Un logiciel de 3D qui était assez populaire (au point que son format propriétaire .lwo était et est toujours implémenté en import/export dans d’autres logiciels 3D comme Terragen et d’autres et dans des modèles 3D) mais qui est tombé en désuétude. malgré tout, une version 2019 est sortie, avec une nouvelle fonction de création de forme « volume vide« .

Il n’en fallait pas plus à Andreas Maschke (le développeur de JWildfire, Flamelet et dernières versions de Mandelbulb3D) pour écrire un plugin destiné à Lightwave 3D permettant le rendu des Mandelbulbs.

Techniquement, le plugin génère pour le « volume vide » les « estimations de distance » nécessaire à la forme de la Mandelboule. Ce type de géométrie est en effet calculé lors du rendu, ce qui demande une énorme quantité de calcul.

Plongeons donc dans une démo de Lightwave, un logiciel qui n’est pas très « intuitif », c’est le moins qu’on puisse dire.

Déjà, dès le lancement, quelle application utiliser ? Pas moins de 8 possibilités pour ouvrir le (les ?) logiciels… Merveilleuse clarté. Enfin, je m’en sors à peu près et parviens à ouvrir le fichier d’Andréas et faire un rendu avec ses couleurs pisseuses (les codeurs ont, en général, un goût de chiotte).

Pour la gloire, parce que les résultats ne sont pas… Très encourageants. Le temps de rendu sont extrêmement lents. Mais lents de chez lents, hein ? Pas lent, lent. Enfin, vous voyez… Notons qu’on peut faire le rendu via le GPU de la carte graphique. Quant on peut (voir plus bas…)

Octane | Vectron – Blender

Avant toute chose, il faut installer Octane Render sur votre machine, ce qui n’est pas une mince affaire… Ce qui en dit long sur la suite du processus. Donc, il faut d’abord créer un compte chez Otoy (rappelons que les autres versions d’Octane Render, pour Cinema4D par exemple, sont douloureusement payantes et qu’il s’agit sans doute de protéger le trésor de guerre). Mais pourquoi la version pour Blender, ainsi que celles pour Unreal Engine et DAZ Studio sont-elles gratuites ? Encore un mystère du monde des développeurs. Bref. Après les méandres d’enregistrements habituels, capture de votre adresse mail et téléphone, etc (histoire de vous faire spammer à mort) et diverses confirmations, en suivant les explications du manuel, sur MacOS, il faut s’identifier et télécharger Octane Server et le lancer (rien ne se passe, normaaaal) puis télécharger une version (2.81) de Blender qui inclue Octane Render (qu’il faut renommer car il doublonne évidement avec vos autres versions installées)…

Au premier lancement (si vous lancez bien la version Blender « enrichie »), on vous avertit gentiment qu’il faut rajouter un flegmon NVDIA Cuda je ne sais quoi. Mais tout se passe bien et O joie, vous jouissez effectivement d’une version d’Octane dans Blender. A condition d’avoir activé le plugin d’Octane Server : dans les préférence de Blender / Add-Ons / Render… A y bien regarder, l’interface est dispersée façon puzzle dans un tas d’endroits improbables pour le néophyte et considérablement plus touffue que celle de Cinema4D par exemple dont l’usage semble en comparaison facile à maîtriser. Dans Blender, il va falloir galèrer (air connu !)…

Pour l’instant, je suis bloqué. J’ai réussi à rentrer la « formule Vectron » d’un cube de Menger dans un shader et la fractale doit être bien là mais pour l’instant elle reste cachée dans un cube gris…

Evidemment, l’idéal serait de se passer de cette usine à gaz supplémentaire et de faire la même chose dans les moteurs de rendu de Blender, Cycles ou Eevee. Mais, sauf erreur, ces fonctions de shaders volumiques paramétrables « à la Vectron » ne sont pas encore implémentées dans le logiciel. Partie remise car du train où vont les mises à jour (on en est déjà à Blender v2.82) nous ne doutons pas que la formidable communauté de cerveaux saura trouver une solution. Certaines fonctions « exotiques » de ce type qui étaient réclamées dans les forums ont été ainsi ajoutées dans la journée !

Je pense que dans mon cas, c’est encore une histoire de driver de carte graphique NVDIA non supporté / actualisé sur les iMac. Avec Blender et Mandelbulber qui fonctionnent ainsi à cloche pied, cela commence à faire beaucoup et la coupe se remplit… Le « grand timonier » Steve Jobs s’en est allé et n’est plus là pour veiller à nous offrir des machines exceptionnelles, les plus puissantes de leur temps et relativement bon marché et surtout ergonomiques. Il n’aurait jamais permis pareil scandale. Et si j’en crois l’excellente biographie de Walter Isaacson que j’ai déjà relu 2 fois, aurait piqué une de ses terribles colères, fondu en sanglots, viré un ou deux codeurs à coups de pieds au(x) cul(s) et tout serait rentré dans l’ordre.

Il existe d’autres alternatives proposées par les gourous de Blender, notamment en passant par les scripts OSL. Ici par exemple, un script pour générer une « Mandelbox« . Ou encore ici, en utilisant les anciennes versions avec le moteur de jeu.

Un autre geek a réussi à transcoder une formule de la Mandelbulb écrite en C, en scripts OSL (Open Shading Langage), à rendre avec Cycles. Il y a du progrès, comme on peut le voir ci-dessous. D’autres geekeries du même style ici et ici

 

Eevee – Blender

En attendant, des petits malins ont réussi à force bidouilles à générer ces fameuses fractales dans Blender et avec Eevee, le moteur de rendu « temps réel » (faire la même chose dans Mandelbulb3D exigerait au bas mot un mois de temps de rendu…)

 

 

 

 

Et ci-dessous, le « making of » :

 

L’exploration des fractales « en volume » continue. Restez branchés !

Publié le Déc 13, 2019

Voir le site pro ?

Tous les tableaux

Tous les articles

0 commentaires