Sélectionner une page

3D : Exporter les fractales de JWildfire

J’avais abordé dans ce billet précédent quelques unes des fonctions 3D de JWildfire. Ici nous utiliserons de nouveau le plugin Parplot2D_wf qui dispose de presets bien pratiques pour générer des formes 3D aux topologies étranges. Avec l’ID 21, par exemple, on obtient facilement ce fusilli qui se mord la pâte et que j’ai texturé en rouge parce qu’il est à la tomate.

Il faut cocher le bouton « rendu 3D » et trifouiller les subtilités du plugin Parplot2D_wf pour avoir un vrai solide 3D avec les effets de surface et les reflets. Sinon on obtient encore ce genre de serpillère diaphane…

On utilisera à profit les réglages de l’onglet « 3D rendering » pour peaufiner les ombres franches, l’occlusion ambiante et tous les petits conforts de l’amateur éclairé.

Egalement l’onglet « Light Settings » pour régler la position de la lumière, sa couleur…

 

 

 

C’est ainsi que j’ai obtenu ce magnifique solide dont voici la formule dans toute sa clarté :

X = (4.0+(sin(4.0*(v+2.0*u))+1.25)*cos(v))*cos(u)
Y = (4.0+(sin(4.0*(v+2.0*u))+1.25)*cos(v))*sin(u)
Z = ((sin(4*(v+2.0*u))+1.25)*sin(v))

Et de l’Umin max et V min max…

Aaaah, on se sent déjà plus instruit !

Ce bouton « rendu 3D » offre d’ailleurs plein de surprises et présente un champ de recherche totalement nouveau : essayez d’ouvrir une de vos fractales plus anciennes, et pour certaines totalement vierges de quelque plugin 3D que ce soit et hop, voilà une nouvelle fractale 3D, éclairée, ombrée, à texturer ! Une toute nouvelle image.

Et bien sûr, il faut choisir entre un fond transparent, coloré, dégradé en 2 ou 5 couleurs, ou encore basé sur une image comme ici le fond ‘tableau noir ».

C’est ainsi que j’ai réalisé cette image, pitch d’un nouveau projet de cartes à collectionner sur NeonMob que je suis en train de mettre en ligne.

 

 

 

 

Je n’ai pas résisté au plaisir d’animer ce bazar, en suivant le mode opératoire détaillé dans l’article précédent sur l’animation des fractales en boucle avec la bête fonction « Easy Movie Maker » et un peu de montage final. Car bien sûr, par défaut, rien ne reboucle ! J’ai rendu une animation de 120 images que j’ai raccourcie et rebouclée « à vue » dans la post production. Plus quelques effets et sons pour faire joli. 🙂

 

 

Des rendus filaires

Petit détour du côté des textures… En cherchant à produire un « rendu filaire » de ces objets pour les insérer en bas à gauche de mon « image signature », genre « objets en cours », je n’avais rien trouvé de mieux, depuis l’onglet Gradient/Modify gradient, que de désaturer complètement la couleur et d’en faire un rendu « plat », sans le bouton « solid 3D » enfoncé. Un genre de rendu filaire, par bandes en fait, car je manquais de temps et qui reste de toute façon très éloigné, même pour un « fake », d’un authentique preview filaire tel qu’on peut l’observer dans les logiciels 3D. Et dans les pubs élaborées tant cet effet « pas fini » est prisé…  Quoiqu’il en soit, c’était perdre toutes les fonctions d’éclairages et d’ombrages de cette fonction « 3D » justement.

JWildfire propose plusieurs méthodes pour arriver à ce résultat : traficoter la texture appliquée à l’objet, éclairer l’objet en projetant une image quadrillée, ajouter une variation « post »…

 

Par la texture

Pour obtenir cet effet « quadrillé » il est possible d’utiliser une texture noir et blanc et en tous cas à bords nets et d’en changer la fréquence ! Histoire de multiplier les « bandes » à l’envi pour un meilleur aspect.

C’est ainsi que j’ai fait 3 rendus de ce double phonographe en bouteille de Klein, cette trompette bouchée de Dini ou toutes autres définitions qui vous passeraient par la tête… En modifiant légèrement le point de vue de la caméra, la fréquence des bandes de la texture, les directions et les couleurs des deux sources d’éclairages. Et pour la dernière une subtile perspective et non moins subtile profondeur de champs (l’arrière de la figure étant légèrement flou) pour un peu plus de réalisme. Avec le fond « tableau noir » et le tout rendu dans JWildfire !

 

 

Par l’éclairage

On peut changer l’algorithme de la reflexion, de la diffusion, subtilités bien rarement employées. Pour le sport, voici le résultat de cette customisation de l’éclairage. En trifouillant les algos proposés en terme de réflexions, spécularité, couleurs, matériaux, etc et en appliquant une texture de reflexion « image », précisément celle du tableau noir cochonné de toutes ces formules, le graphisme est effectivement appliqué à l’objet. Attention chaque changement de réglage est très long a être pris en compte par le logiciel : ça tremble, ça chauffe, ça souffle et on s’attend à tout moment, en apnée, à voir l’ordinateur se transformer en flaque de mercure…

 

 

C’est toujours amusant de voir apparaître au gré des menus les noms des inventeurs de l’algorithme qui est appliqué. Une célébrité d’interface qui est passée dans le langage courant des geeks sans qu’on sache très bien à quoi ressemblaient ces mathématichiens. Ainsi, qui étaient vraiment ces Bezier, Chebychev, Manhattan, Minkowski, Laplace, Perlin, Musgrave, Voronoï, Lanczos, Poisson, Blinn et Newell, vaches et cochons ? Je donne ma lanczoschats…

 

Pour ces images, j’ai ajouté au passage pas mal de profondeur de champs, d’effet « Bokeh » et d’autres subtilités proposées par ce logiciel décidément surprenant.

Attention, les réglages « Bokeh » sont nombreux et encore une fois très confusants…

 

 

Autre résultat en projetant cette fois une image de papier millimétré coloré en bleu-vert « architecte » (antiques tirages de plans au ferrocyanure de potassium). On constate que la texture d’éclairage prend largement le pas sur la texture réelle appliquée au modèle. Enfin, tout est question de réglages et de proportions. Des heures…

Par une texture image

On peut bien sûr utiliser une image comme texture avec tous les réglages idoines et un rendu 3D ou non.

 

Avec une variation « Post »

Tant qu’on y est, on peut aussi bricoler ce genre d’effets en ajoutant une variation Post_Color Map comme laborieusement expliqué ici… Les résultats sont… Curieux.

 

Par un mappage paramétré

Par contre je n’ai pas trouvé le moyen de modifier le « mappage » de la texture (à plat, sphérique, cubique…) pour s’adapter au mieux à la forme du modèle. Dans JWildfire/3D Rendering, la texture est appliquée « à la sauvage » sans qu’il soit possible d’accéder à un réglage de ce type. Il fallait bien en laisser pour les « vrais » logiciels de 3D…

En cherchant compulsivement comme un cochon truffier, j’ai découvert qu’on peut influer un peu sur ce paramètre mais en accédant à l’onglet « color » du panneau de droite ! Et non pas dans les onglets du bas… Oui, oui, deux endroits différents qui se rapportent à la même chose. C’est comme ça. Et donc voilà qu’on a accès à de nouveau réglages : Diffusion, Target, Cyclic, tous plus abscons les uns que les autres mais qui permettent effectivement de changer la façon dont la texture est appliquée sur l’objet. Voici quelques essais avec une texture bicolore « franche » pour voir ce qu’on fait…

Mais en fait, c’est surtout une des variables du plugin _wf qui agit et en particulier « displacement_map » qui permet d’appliquer, comme son nom l’indique, le déplacement de la texture ! Mais je n’ai pas trouvé comment régler l’intensité de cet effet ! Laissez-moi là : je vais vous retarder…

Exporter nos merveilles

Mais y a-t-il moyen d’aller plus loin ? D’extraire les fractales en 3D de JWildfire pour pouvoir justement les utiliser dans des logiciels de 3D autrement plus puissants ? C’est possib ! Grâce au module « 3D Mesh Generation« .

La fonction « Voxel Stack » découpe en effet la fractale en tranches fines avec, dans l’onglet « Mesh Generation« , tous les traitements intégrés, optimisations « Poisson », « Taubin », qui permettent de s’affranchir de l’import/export avec les logiciels Fiji, Meshlab, et autres colifichets comme dans les premières versions. L’export se fait au format .obj d’Alias Wavefront, bien connu en 3D.

Voici un aperçu des étapes du procédé. Il faut ouvrir la figure depuis l’éditeur et la positionner comme il faut dans la fenêtre centrale grâce aux réglages idoines. Puis indiquer au logiciel quoi découper en réglant les barres jaunes et bleues qui enfermeront façon hamburger la fractale. On gardera les réglages de précision par défaut car le rendu est déjà TRES long. De quoi utiliser l’objet .obj nouveau né dans le logiciel de votre choix. Oui mais non !

L’objet en question est d’un poids superfétatoire ! Certes on peut l’importer mais à la moindre tentative de modification le logiciel plantera. De quoi avoir deux doigts boudinés à force d’appuyer compulsivement chaque seconde sur les touches « Cmd » « S »… Le passage par Meshlab est obligatoire pour optimiser le modèle, le peigner, le lisser et autres opérations cabalistiques pour ceux qui maîtrisent ce logiciel. Bon courage…

On peut aussi utiliser des fonctions du logiciel 3D comme le remeshage, la décimation, la subdivision de surface pour tenter d’obtenir un solide utilisable et lisse comme dans JWilfire. Las. Un demi million de plantage plus tard, le modèle s’avère abimé, facetté, troué : dégueulasse. Comme on peut le voir sur ma nouille de gauche. Par rapport à la nouille de droite. Car, bien sûr, la solution existe !

S’il vous PLY !

JWildfire propose en effet l’arme absolue sous la forme de l’export en « Point Cloud« , technique du nuage de points, bien connue des scanners 3D en photogrammétrie laser ou en impression 3D (format .stl). Avantage énorme : l’export est entre 5 et 10 fois plus rapide que la version .obj et les résultats sont meilleurs même s’il faut jouer avec les réglages. Plus grande taille du modèle, plus grand nombre de points : plus de temps de calcul mais plus de précision. Il faut faire des essais.

Ce génial format (Polygone File Format) a été développé par le Stanford University Computer Graphics Laboratory dans les années 1990 avec le succès que l’on sait : sa vitesse et pour cause puisqu’il s’agit « simplement » de créer un nuage de points, chaque point étant identifié par ses seules 3 coordonnées dans l’espace au lieu de chercher à définir une équation globale qui reproduise la forme.

Même procédure d’export de jWildfire, donc, mais en sélectionnant .ply. Après quelques millions d’années, le fichier .ply apparait là où vous l’avez enregistré. Bien entendu, à ces définitions, l’export de JWildfire plante souvent comme un goret : le curseur de rendu reste bloqué à mi chemin ! Mais ce n’est qu’un bug : le fichier est bien là, il faut juste surveiller son apparition avant d’en disposer.

Dès lors, Blender peut importer les fichiers .ply en standard. Oui, mais non ! Ceux issus de l’export JWildfire ou Mandelbulb3D d’ailleurs et de quelques autres applis exotiques provoquent des erreurs rhédibitoires.

C’est là qu’il faut mettre les mains dans le cambouis et modifier à la main les scripts d’importation de Blender. On trouvera les fichiers nécessaires et la marche à suivre sur l’excellent Github du bidouilleur. Si tout s’est bien passé, un nouveau menu est disponible dans « Import » : Stanford PLY as vertices. Et ça marche ! Une opération qu’il faudra répéter à chaque mise à jour de Blender, quand on aura tout oublié, étant passé à autre chose. Raison d’être, entre autres, de ce blog…

Magie : l’objet est bien là, manipulable et corvéable à merci tout en étant lisse comme les équations mathématiques dont il est issu ! Ici, il est d’usage d’effectuer une petite danse autour du bureau tout en poussant des cris inarticulés…

 

Mais tout se complique quand on prétend vouloir appliquer une texture à l’objet. Cela ne marche pas ! Comme si cet objet qui nous nargue, dans sa fenêtre, n’était qu’un fantôme ! Et c’est bien ce qu’il est, souvenons-nous : un sac de points avec leurs coordonnées tridimensionnelles, des valeurs mathématiques mais rien de « physique ». Il faut solidifier le bazar ! Et c’est là qu’intervient Geometry Nodes avec un rig assez simple pour assigner une petite bille (sphère) à chaque point. Miracle : si on a assez de points et que les billes sont assez petites elles se recoupent et donnent à voir une surface qu’il est alors possible de texturer ! Le réalisme de la forme depend bien sûr de la taille et de la quantité de billes utilisées pour faire apparaitre la forme.

Ci-dessous un petit benchmark qui va des valeurs par défaut à 0.01 en taille de bille jusqu’à la forme totalement lisse, en verre qui… Casse comme du verre !

 

C’est ainsi qu’il est possible d’exporter n’importe quelle fractale de JWildfire vers Blender avec un niveau de détails et une légèreté remarquable.

Import / Export des textures !

Gradient editor dans JWildfire.

Le format .ply est proche du .slt mais plus complet : il exporte également les textures et couleurs et autres attributs. Et on peut les récupérer dans Blender ! Si.

Il suffit de créer un matériau avec un node « Attribute » avec le nom de l’attribut (Col). Avec un shader « Emission » à la place de « Principle BDSF » on renforce les couleurs. Il faut régler aussi dans l’onglet de Cycles les « Color Management sur « None » au lieu de sRVB…

Oh joie : les textures de JWildfire (ou d’autres attributs) sont conservées. Hâte de tester ça avec Mandebulb3D et Mandelbulber

 

 

Dans Blender…

 

Autres essais en exportant un tronçon de terrain fractal avec sa texture, toujours avec le même procédé : export en .ply « enrichi » et import dans Blender avec « solidification » des points avec des billes et import de la texture d’origine.

 

De même, pour rester dans les solides 3D export/import avec textures : au rayon bijouterie, voici quelques subtiles variations obtenues avec le Mutagen (variations aléatoires mais paramétrées) à partir d’une fractale générées en batch avec le générateur de flames « Solid Julia 3D ». Et sa texture JWildfire, exportée et récupérée dans Blender, pour les besoins de l’exercice.

 

En conclusion…

Maintenant que notre processus d’export est bien au point, douche froide, il faut tempérer notre enthousiasme : point n’est besoin de JWildfire pour générer ces solides aux topologies étranges et les utiliser en 3D !

Blender peut tout faire, nous l’avons déjà dit. En particulier ces représentations mathématiques. Il faut d’abord ajouter l’addon idoine (dur à dire) dans les préférences (Blender dispose de centaines – milliers ? – de fonctions cachées de la sorte)…

Ensuite de nouveaux menus apparaissent dans Edit/Mesh : XYZ Math surface ou on peut entrer des formules correspondant peu ou prou à celles utilisées dans les réglages du module Parplot2D_wf de JWilfire. Et les trifouiller à merci. Ou encore utiliser les presets proposés.

 

A nous de naviguer alors, les yeux humides, dans les nombreuses extravagances topologiques proposées, Cochlée, HyperHelicoïdal, Pseudo Catenoid, Catalan, Enneper et autres tores de Clifford…

La revanche de JWildfire

Double emploi donc, si l’on veut, avec l’implémentation de ce plugin Parplot 2D_wf dans JWildfire. Mais, on a toujours besoin d’un petit logiciel de génération de fractales… Un nouveau script russe est apparu ces temps derniers, prompt à agiter le Landerneau des fractalistes du monde : il permet la génération de fractales « Gnarl » en relief ! Et beaucoup plus facilement qu’avec la méthode précédente. Un graal que j’avais commencé à explorer il y a bien longtemps… Et pour l’instant encore hors de portée des logiciels de 3D.

Et donc, d’un simple clic (enfin, un bon millier) voilà ce qu’on obtient. « Objets sortis de la nouvelle tombe découverte dans la vallée des rois. Or et Lapis-lazulli, malachite polie« . Mais à quoi pouvaient-ils bien servir ? Les archéologues se perdent en conjectures. Une idée ? Plus sérieusement, il s’agit des projections 3D de polytopes 4D de ces fameuses fractales solides « Gnarl ».

Ou encore, cette fantaisie mécanique que je n’avais pas résisté à publier illico sur mon mur Facebook avec son non moins facétieux commentaire : « J’ai besoin d’aide : l’injecteur de gaz rares de mon recycleur (modèle turc 2024 – non UE) fuit vers 3800 bars… Un cliquet céramique a cassé et une rondelle de graphène se retrouve asymétrique. Les valves chrome-vanadium frittées semblent intactes, pourtant, correctement embouchées dans l’alu. Je ne sais pas si je suis clair… Il faudrait que je puisse démonter l’écrou Torx à 7,6 pans biseautés mais je n’ai pas l’outil ! Une idée ? » On en rit encore !

Ou encore, cet arbre fossilisé, dans la mesure ou « gnarl » signifie « noeud dans le bois »… Allez, c’est le dernier, promis !

Publié le Nov 26, 2023

Voir le site pro ?

Tous les tableaux

Tous les articles

0 commentaires