Sélectionner une page

Mandelbulb3D : intégrer du texte dans les fractales

Vu la crise du pouvoir d’achat qui s’annonce (merci au confinement et à la courte vue de ceux qui prétendent nous gouverner…), il est urgent de multiplier les sources d’argent liquide. Poétique occasion de se replonger dans les arcanes de Mandelbulb3D pour étudier les différentes façons d’intégrer du texte dans une fractale.
Et pourquoi, en ces temps de disette annoncée, ne pas utiliser la métaphore du métal précieux et le multiplier à l’envi, de manière fractale ? Dont acte. Voici quelques pépites. Fort Knox n’a qu’à bien se tenir…

Que fait la police ?

Il n’y a pas dans Mandelbulb3D d’éditeur de texte dédié comme dans d’autres logiciels de 3D. Il faut tricher et en passer par une carte d’élévation en niveaux de gris à générer en externe dans un logiciel d’imagerie, comme nous l’avions vu dans le making of de « Drakkar«  ou dans la création de textures de déplacement à partir de fractales… Ce qui implique que les modifications de textes, de tailles ou de typographie obligent à refaire une « map » pour chaque modification. C’est lourd ; très lourd mais pas moyen de faire autrement…

Il faut donc en premier lieu préparer une « HeighMap » à intégrer, avec le texte en noir sur fond blanc. Les résultats les meilleurs, comme toujours en 3D, sont obtenus avec des polices à larges empâtements. Mais toutes les polices de caractère ne conviennent pas, pour d’obscures raisons… Ainsi, l’emploi d’une Montserrat UltraBlack ou d’une Gotham Ultra conduit à des zones d’imprécisions, rendues sous formes de poussière fractale du plus vilain effet.

Mais avec la police Gill Sans Ultra Bold, pourtant de forme très proche, c’est OK… Plus de poussière d’or ! Essais – erreurs. Patience et longueur de temps…

Question taille j’ai choisi du 5 K : de quoi obtenir un fichier final enregistré en .png de 5000 x 5000 pixels. Je crois que Mandelbulb3D s’en fout et ne peut pas traiter mieux que des « maps » en jpeg et en 512 x 512 pixels mais on n’est jamais trop prudent.

Ne pas oublier de nommer la map avec un nombre « libre » dans la liste des maps de MB3D (des centaines. Des milliers ? Ah bon. C’est vous qui voyez).

Rappelons que ce logiciel ne lit que les nombres et c’est ce même nombre qu’on doit mentionner dans la zone de dialogue de HeighMapIFS : « map nr ».

Oui, je sais, vous aller sans arrêt vous tromper de numéro d’identification et c’est très crispant. Bonjour le multi fenêtrage pour essayer de se repérer…

Lutter contre les créneaux !

Autre point important : la lutte incessante contre « l’aliasing », ce crénelage disgracieux qui apparait sur les lignes droites. Pour ce faire, dans le fichier image il faut d’abord appliquer une bonne louche de flou gaussien sur la typographie de façon à flouter les bords d’attaques. Il faut souvent tâtonner pour trouver la bonne valeur de flou à appliquer.

Autre mesure de prophylaxie : le « downsampling » qui consiste à rendre la fractale en taille double, puis appliquer un très léger flou gaussien et enfin réduire la taille de moitié avec un algorithme de rééchantillonage bicubique ou un autre plus adapté…

Ci-dessous, le comparatif entre une police non floutée et l’application d’un flou gaussien (à un facteur de zoom démentiel, pour bien voir l’effet) : à gauche, l’horreur des « alias » ! Le floutage a une autre vertu : celle « d’arrondir les angles » en les rendant plus réalistes et surtout capables d’accrocher la lumière pour créer de beaux reflets. N’hésitez pas à cliquer sur les images pour les voir en grand sinon je me serais cassé le tronc pour rien… 🙂

Une question d’intégration…

On a le choix entre les différents modes combinatoires dans Mandelbulb3D (Alternate, Interpolate, DECombinate) et les différentes équations fractales qu’il est possible de mixer avec du texte (et donc une « heighmapIFS ») et qui sont en très grand nombre. Quand on passe en mode DE Combinate et en fonction des équations utilisées, le texte apparait seul dans l’image, sans être multiplié à  l’infini…

Par exemple, on obtient un effet intéressant de multiplication du texte avec les équations « ApolloIFS » ou encore « CayleySurfIFS » en mode Alternate.

Ou encore, le même texte combiné avec RandCubeIFS :

Terrible « effet secondaire » de cette technique : la répétition « seamless » du texte en X et en Y. C’est dû au principe même de la heighmap qui se répète « sans raccords » dans les deux directions du plan. Ici en exemple combiné avec « WaveIFS »…

Pour éviter cela, et si l’on veut ne faire apparaître le texte qu’une fois il faut zoomer dans le navigateur de Mandelbulb3D jusqu’au cadrage souhaité pour éliminer les répétitions du mot. Mais la fractale combinée sera elle aussi grossie ce qui n’est peut-être pas ce que vous souhaitez.

Dans ce cas, il faut refaire une map avec le texte beaucoup plus petit, isolé au centre d’un carré blanc de plus grande taille, et ajuster le zoom dans Mandelbulb3D.

Vers le réalisme : les réflexions et la profondeur de champ

Toutefois, ces styles de « compositions » à base de texte ne tirent pas partie pleinement des possibilités des fractales et, il faut le dire, pourraient être obtenues dans un logiciel de 3D classique, avec les fonctions de Mograph dans Cinema 4D ou Animation Nodes dans Blender par exemple. Il y a moyen d’aller plus loin et de réellement combiner texte et fractale, le premier étant une vraie composante de la deuxième.

Par exemple, en utilisant l’intitulé de ce blog et en gardant une métaphore « métallique », voici ce qu’on obtient en intégrant le texte (Heighmap en mode alternate) avec un fond constitué de la combinaison « BoxIFS » et « FoldinghexIFS » comme on a pu le voir sur certains tutoriaux. Le placement précis du texte s’effectue grâce aux réglages de la Heighmap mais aussi avec les commandes du navigateur.

En ouvrant l’onglet « Post processing » comme ci dessous on constate les différentes passes du rendu : « Normals on Z buffer », puis les ombres (hard shadows) correspondant ici aux ombres générées par les deux sources d’éclairages utilisées ( un spot orangé, l’autre bleuté, avec des angles d’incidence complémentaires), puis l’occlusion ambiante (Ambient Shadows) réglée cette fois en mode SSA024r avec 3 passes.

Voilà ce qu’on obtient à ce stade. On notera les imperfections (trous) sur le texte. On peut les atténuer dans une certaine mesure en faisant un rendu plus grand dont la taille sera ensuite diminuée de moitié ou en jouant sur les valeurs DE Stop et surtout de Raystep multiplier qu’on peut baisser à 0.05 ou moins encore. Pour ma part, voulant obtenir une effet « métal » et surtout parce que je suis un feignasse, j’ai laissé les trous !

Il est temps d’ajouter une passe de réflexions (réglages standards) pour intégrer au mieux le texte au décor et accentuer l’effet métallique. A ce stade et en particulier avec les réflexions, il serait bien difficile de réaliser la même illustration avec un autre logiciel de 3D. Pour y parvenir il faudrait modéliser le texte avec son extrusion et ses chanfreins (pas de problème) mais adossé à un fond constitué de la fractale en triangles imbriqués. Or, en l’état, il ne s’agit pas d’un objet 3D mais d’une fractale (résultat d’une équation et sans limites)… Bien sûr, on pourrait exporter ce motif en .obj (format standard 3D) depuis le BTracer de Mandelbulb3D mais les résultats seraient considérablement dégradés (pas le niveau de détails atteignables avec une « vraie » fractale. Ces subtilités vous passent sans doute au dessus de la tête et ne sont en fait que des pignolades de geeks mais, on ne se refait pas… 🙂

Poursuivons notre quête de réalisme avec l’ajout de la profondeur de champ (DOF, pour « Depth Of Field ») qui se règle très facilement (pour une fois). En cliquant sur le bouton « GetZ1 » puis sur le « e » dans la fenêtre de rendu, on indique au logiciel le début de la zone de netteté qui s’étend jusqu’au « GetZ2 » sur le G. Ainsi, « Blog » apparaitra parfaitement net tandis que « Le » et « Guen » seront floutés en fonction de leur position sur le plan « Z » (profondeur).

L’intensité du flou dépends des réglages, principalement de l’ouverture (ici 0.02). Ce rendu étant très rapide (au contraire des « Hard Shadows » et des « Reflection + Transparency ») on peut ce permettre le rendu en 3 passes qui donne des résultats plus précis. Comme indiqué, les effets s’accumulent si bien qu’il est prudent de régler le flou à des valeurs faibles, quitte à cliquer plusieurs fois sur le bouton « Calculate now » : à chaque fois l’intensité de l’effet augment, ce qui est bien pratique pour ajuster au mieux le « DOF ».

Post-production

On sauve l’image au format .png (sans pertes) et il est temps de l’ouvrir dans un logiciel de retouche pour quelques derniers ajustements. Ici j’ai équilibré les tons clairs et tons foncés puis ajouté une copie du calque en noir et blanc (en mode incrustation à 30 % de transparence) sur lequel j’ai ajouté une texture « grunge » (pour donner plus d’intention aux imperfections du rendu), du grain photo et en fait, ce que vous avez sous la main. Et enfin un effet Bokeh avec un calque dégradé noir semi transparent qui a pour effet d’assombrir légèrement les coins de l’image pour focaliser le regard sur le sujet principal). Toutes ces opérations ont pour but de « casser » le côté trop parfait, trop « mathématique » des rendus en 3D… Créer pour ensuite cochonner : c’est comme çà !

On peut penser que ces subtilités sont superflues dans la mesure où elles ne sautent pas aux yeux dans l’image finale mais c’est tout le contraire : il suffit de les supprimer pour se rendre compte qu’elle « manquent » cruellement. Subtil, toujours. « Less is more »… Pour l’exemple, l’image ci-dessous, « sans effets » à comparer avec celle ci-dessus…

 

Et puisqu’on est dans les secrets de fabrication, j’ai appliqué les mêmes recettes à l’image vue plus haut avec « RandCubesIFS » mais en ajoutant une troisième lumière blanche, omni directionelle, légèrement au dessus du plan, en haut à gauche, de façon à créer des zones de « hautes lumières » et des ombres franches.

Sur ces zones de haute lumière, j’ai appliqué un filtre créateur d’étoiles pour accentuer le côté métallique et précieux…

Retour à Mandelbrot

Allons plus loin et combinons cette fois le texte avec les équations « Mandel4DBiC » (l’ensemble de Mandelbrot, à l’origine de tous ces délires), « logspIFS » (l’élégante spirale logarithmique avec des réglages en Mobius pour faire apparaître une spirale d’Escher à double foyer) qui m’évoque irrésistiblement les ressorts métalliques des archaïques réveils que je m’ingéniais à démonter, sans espoir de retour, quand j’étais un nain… Et enfin « transformIFS » pour quelques ajustements, le tout en mode DECombinate.

Bon, j’ai considérablement triché pour le rendu final avec un empilement de passes et de masques qui m’ont permis d’ajouter des textures sur certaines zones seulement, toujours dans le but de « casser » le rendu « mathématique ».

Une machine refroidie à l’hélium liquide, animée par un ressort de réveil en double spirale logarithmique d’Escher et qui transforme la neige sale en or : on n’arrête pas le progrès !

Dans la foulée, j’ai essayé avec une autre HeighMap contenant le texte de cet article : voilà une plaque de bronze embossée qui sort tout juste de ma fonderie !

J’y retourne : il faut que je range mes lingots. Et ne manquerais pas de vous tenir au courant de mes recherches frénétiques au pays des fractales. Le BloGuen ne s’arrête jamais…

 

Publié le Juin 14, 2020

Voir le site pro ?

Tous les tableaux

Tous les articles

0 commentaires