mercredi 25 décembre 2013

Corridor



Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

Pyramide



Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

Ruines



Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

Menger Explosion



Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

Strange Structure in Space



Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

Pattern 2


Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

Pythagore's nightmare



Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

MengerHyper

MengerHyper classique


Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

Pattern 1

FOV à 180°, aucune lumière mais brouillard volumétrique et réflexion.


Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Condi

Test Blender et Structure Synth

Arbre généré à l'aide de Structure Synth. Nuages-feuillage et rendu avec Blender
Ville générée avec Structure Synth. Le reste avec Blender

Réalisé entièrement avec blender.

Réalisé entièrement avec blender.

Réalisé entièrement avec blender.

Pyramide réalisée avec Structure Synth, rendu et modifications de mesh réalisé avec Blender.


Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Condi

samedi 14 décembre 2013

Double Structure


Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

Wavy




Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

Cube





Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 Belgique.

Fractales en verre

"Riemann"

"Mandelbox"

Tricorn-Julia 1

Tricorn-Julia 2

Tricorn-Julia 3

"Cantor"

"Mandelbulb"

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 :









dimanche 1 décembre 2013

Installation "MathMap" pour Gimp sous Ubuntu

Cette technique a été trouvée au fil de nombreuses tentatives d'installation et semble fonctionner systématiquement.
Elle a été réalisée sur trois systèmes basés sur Ubuntu : Ubuntu, Xubuntu et Kubuntu et a fonctionné à chaque fois.
Il y a néanmoins eu un bug à la première installation qui, au lancement de MathMap me signalait la présence d'un doublon dans les fichiers. Il m'a suffit de supprimer le dossier "Examples" que vous trouverez dans le dossier d'installation (qui vous sera donné dans le message signalant le bug s'il venait à se produire, donc vous le trouverez facilement).

N'hésitez pas à laisser un commentaire si vous rencontriez un problème.

Attention cependant, cette technique n'a été utilisée que sur Ubuntu. Il n'est pas certain  que sur d'autres distributions, Debian par exemple, où les sources de paquets sont moins importantes et pour lesquels moins de librairies ont été installées de base avec le système, cela fonctionne.

  • Commencez donc par lancer une console.
  • Une fois dedans, on commence par installer les pré-requis à l'installation ainsi que toutes les dépendances dont nous aurons besoin par la suite :
sudo apt-get install git checkinstall build-essential linux-headers-$(uname -r) && git submodule init && git submodule update && sudo ln -s /usr/include/gtksourceview-2.0/gtksourceview /usr/include/gtksourceview && sudo apt-get install libgimp2.0-dev libgtksourceview2.0-dev libgsl0-dev libfftw3-dev clisp-dev libjpeg-dev libpng12-dev libgif-dev bison gettext autotools-dev libtool dbs
  • Nous allons maintenant créer un répertoire temporaire dans lequel nous allons effectuer les opérations suivantes :  
cd ~ && mkdir MathMapTMP && cd MathMapTMP
  • Maintenant que nous sommes dans le répertoire temporaire qui nous servira à installer MathMap, nous allons récupérer les sources : 
git clone https://github.com/schani/mathmap.git mathmap-src
  • Un nouveau dossier a été créé, dans lequel nous nous rendons
cd mathmap-src
  • Nous allons maintenant lancer noter premier "make",  ce qui provoquera un bug (eh oui...). La compilation de MathMap nécessite le fichier libnoise.zip, tout en ayant de certains fichiers y étant présents, tout en ayant besoin que ceux-ci soient compilés... Voici donc la série de commandes à effectuer pour arranger tout cela : 
make 
cd libnoise/noise
cp ./doc/Doxyfile ./doc/html
make
cd ~/MathMapTMP/mathmap-src
  • On lance la "création" 
make
  • Il se peut maintenant que vous rencontriez un soucis avec GTK... On y remédie de la manière suivante, en créant un lien symbolique. Une fois cela fait, on "relance" la "création" : 
sudo ln -s /usr/include/gtksourceview-2.0/gtksourceview /usr/include/gtksourceview 
make
    • Une fois cela fait, on recommence l'opération et on finalise : 
    make
    sudo make install
         Et voilà :)