samedi 14 décembre 2013

Obtenir un modèle 3D OBJ à partir de Mandelbulb3D

Pour ce tutoriel, nous aurons besoin de différents logiciels :
1. Mandelbulb3D : http://www.fractalforums.com/mandelbulb-3d/
2. Fiji (Fiji Is Just Imagej) : http://fiji.sc/Fiji
3. Blender 2.69 : http://www.blender.org/

PARTIE 1 : Mandelbulb3D

Nous allons partir du fait que vous sachiez déjà comment utiliser un minimum Mandelbulb3D afin d'obtenir l'objet voulu dans ce logiciel.

Nous allons utiliser pour notre exemple une Mandelbox.

Vue d'une Mandelbox dans le logiciel Mandelbulb3D
Une fois l'objet souhaité obtenu, faite un "reset" de sa position afin d'obtenir un vue de face de l'objet :

Vue de face de la Mandelbox après appui sur "Reset" dans la section "Position"
Une fois notre objet de face, nous allons pouvoir l'exporter.
Pour cela, dans la section réservée aux opération de fichier :


Sélectionner "Utilities" et de nouvelles options feront leur apparition, dont "Voxel Stack".


Cliquez dessus et une nouvelle fenêtre apparaîtra, dans laquelle vous pouvez directement cliquer sur "Import parameters from main"


Comme nous pouvons le voir au "Preview max size", l'objet a une résolution de 64x64x64.
En fait, ce n'est pas l'objet qui a cette taille mais la fenêtre de pré-visualisation.
L'objet a donc en réalité un peu moins de résolution que celle indiquée.

Attention à partir de ce moment.
Les objets fractals étant ce qu'ils sont, augmenter la taille augmentera les détails de manière exponentielle, finissant par donner un résultat beaucoup trop gros pour être utilisable.
Cela  peut néanmoins être corrigé par la suite via les logiciels "Sculptris" ou "MeshLab" mais il vaut mieux partir d'un Voxel Stack pas trop gros et qu'il y a donc moyen de travailler facilement.

En règle générale, si l'objet est bien centré et légèrement dézoomé de façon à rentrer parfaitement dans la fenêtre de prévisualisation : c'est bon!

Vous pouvez à ce moment là augmenter la taille de prévisualisation pour avoir une meilleure idée de votre objet final :


Maintenant que nous avons l'objet à exporter, préparons les options d'exportation.
Il n'y a pas grand chose à changer.
Faisons passer le nombre de "Z slices" de 100 à 256


Votre objet est prêt à être "slicé". Il ne vous reste plus qu'à appuyer sur "Start rendering slices" et il créera toutes les images correspondant aux couches de l'objet dans le dossier que vous avec indiqué dans "Output folder".
Le calcul des images prend peu de temps mais vous permettra de voir chacune se dessiner dans la fenêtre principale de Mandelbulb3D :

Création des slices en cours
Une fois  cela fini, vous pouvez quitter Mandelbulb3D :)

Partie 2 : Fiji

Fiji est une version modifiée de ImageJ, qui comprend l'exportation en OBJ.

Attention, Fiji et ImageJ ont exactement la même interface et vous pouvez très bien utilisez ImageJ à la place de Fiji sans vous en rendre compte.

Merci à Pat Zonche pour m'avoir fait remarqué la chose et permis de corriger mon tuto.

Allez dans "File" - "Import" - "Image Sequence" (le premier en principe).



Sélectionner la première image générée par Mandelbulb3D et appuyez sur "OK".
Une nouvelle fenêtre apparaîtra. Dans celle-ci, cochez les cases tel qu'indiqué dans l'image suivante, c'est-à-dire en cochant les cases "Convert to RGB" et "Use Virtual Stack".


Appuyez sur "OK" une fois toutes les options correctement choisies.

Une fenêtre en principe noire devrait apparaître. Si vous appuyez sur le bouton "Play" de cette fenêtre, vous verrez défiler toutes les images générées par Mandelbulb3D, toutes les tranches de l'objet.


Allez maintenant dans "File" - "Save as" - "PGM" et sauvegarder simplement sans toucher à quoi que ce soit.
Un fichier ".PNM" sera créé et utilisé par la suite pour la création de l'objet 3D.

Allez maintenant dans "File" - "Save as" - "Wavefront .OBJ".

La fenêtre suivante apparaîtra :


Nous ne modifions pas le "Stack", il correspond au fichier généré lorsque nous avons sauvegardé en PGM.

Le "Threshold", ce que je avis dire n'est pas la vérité mais vous aidera à mieux comprendre : imaginons que vous ayez un dessin rempli de détails à reproduire 10x.
Chaque reproduction devant être reproduite avec un crayon de plus en plus gros.
Chaque crayon, de par sa grosseur, empêchera de dessiner certains détails du dessin original.
Le dernier, celui fait avec le crayon le plus gros étant le moins détaillé.
Le "Threshold" correspond donc à peu près à la taille du crayon...

"Resampling Factor" est l'option qui donnera ou non ces détails et également celle qui influera le plus sur la taille de l'objet final.

Le mieux est donc de toujours laisser le "Threshold" à "1"
Le "Resampling Factor", je vous conseillerais de commencer à 1.
Si le fichier généré est trop gros, essayez avec 2.
Et ainsi de suite jusqu'à obtenir un fichier qui ne soit plus trop volumineux.


Comme on peut le voir, un "Resampling Factor" de "1" génère un fichier bien trop volumineux.
Une valeur de "2" donne un fichier acceptable.

A ce moment-ci vous pouvez, si vous utilisez le logiciel "Sculptris" l'ouvrir dans ce logiciel. Le fichier OBJ généré ne contient pas d'erreur pouvant empêcher son ouverture.
Attention cependant, certains modèles sont tellement complexes que les outils de Sculptris n'ont aucun effet sur le modèle.

3. Blender 2.69

Nous pouvons enfin importer notre fichier dans Blender :)
Attention, une fois ouvert, vous ne verrez rien apparaître (du moins en principe)
Cela est normal! L'objet généré a des dimensions tellement énormes qu'il faut d'abord réduire sa taille pour le voir :

Comme on peut le voir dans la colonne de droite, sous "Scale", il a fallu passer de 1 à 0.01 pour que la taille de l'objet permette d'être vu.

Nous allons maintenant créer un sol. Une simple boite redimensionnée.
Comme on peut le voir sur le screenshot suivant, je lui ai attribué un matériau simple, sans aucune option, à l'exception de "Receive Transparent" sans la section "Shadow" (tout en bas de la colonne de droite quand vous êtes dans la section "Material".)

Pensez à cliquer sur "Receive Transparent" sinon l'ombre portée par votre objet transparent sera noire comme si l'objet ne possédait pas la moindre transparence.
Sélectionnez maintenant votre objet fractal et créez un nouveau matériau pour cet objet également.

Comme on peut le voir dans ce screenshot :


La première chose faite est de mettre le "Diffuse" à "0".

J'ai également changé les valeurs de "Specular" afin d'obtenir un rendu de lumière plus proche du verre (faite vous une idée avec la prévisualisation).

Cochez la case "Transparency" et choisissez l'option "Raytrace".

Modifiez la valeur "Alpha" sans la mettre à "0" mais légèrement au-dessus afin que l'objet ne soit pas tout à fait transparent.

"IOR" permet de modifier l'indice de réfraction de l'objet.
L'objet étant for détaillé, il vaut mieux mettre un indice très léger si l'on veut voir les déformations à travers l'objet.

Si nous lançons le rendu maintenant, notre objet sera moche :


Cela vient du fait que j'ai oublié de modifier une option, mais qui vous permet d'en voir son importance : l'option "Depth" indiquant la "profondeur" de l'effet et donc le nombre de réfractions appliquées à l'objet. Si la valeur est trop faible, nous aurons le résultat ci-dessus.

Modifions cette valeur et faisons-la passer à 8 :


Ce qui nous donne déjà un meilleur résultat, mais ce n'est pas encore ça :


Nous allons donc directement passer à une valeur de 32, qui nous donnera notre résultat final :











Pour ce tutoriel, nous aurons besoin de différents logiciels : 1. Mandelbulb3D :  http://www.fractalforums.com/mandelbulb-3d/ 2. Fiji (Fij... Rate this posting:
{[["☆","★"]]}