dimanche 2 juin 2013

KochBox

Réalisé avec Mandelbulb3D, cette image mélange deux formules simples : MengerKoch et Mandelbox.
La forme générée est déjà assez belle en elle-même, j'ai donné à la mandelbox une valeur négative et ai ensuite joué avec les itérations de chacune des deux formes pour obtenir ce résultat.
J'ai ensuite joué avec l'Iteration Fog pour obtenir l'effets colorés à l'arrière plan.



Licence Creative Commons
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.

Structure Synth - Flocon de Koch

J'ai décidé d'essayer de reproduire la structure du flocon de Koch dans Structure Synth.

C'est à dire, ceci :


( source : http://fr.wikipedia.org/wiki/Flocon_de_Koch )

Voici la formule utilisée pour générer cette forme.
Je vais tenter de vous l'expliquer car il a fallu tenir compte, pour le placement, de certaines choses telles que le redimensionnement à chaque nouvelle itération.


{s 24} Koch

rule Koch md 7
{
   {x 2/3 s 1/3 x -1/9 y 1/5 rz 60 h 10} Koch 
   {fx x -4/3 s 1/3 y 1/5 x 2/9 rz 60 h 10 } Koch 
   {s 1/3 x -1/9 y 1/9 h 10} Koch
   {x 4/3 s 1/3 y 1/9 x -1/9 h 10} Koch
   LigneSpheres
} 

rule LigneSpheres md 16
{ 
   MySphere 
   {x 1/8 h 1} LigneSpheres
} 

rule MySphere
{ 
   {s 1/8 } sphere::shiny 
}


1. rule "Myshpere"
La première faite a été de préparer l'objet utilisé, dans notre cas : une sphère.
Je lui ai appliqué un redimensionnement de 1/8 car l'objet final peut vite devenir très grand et sortir des limites du zoom de Structure Synth. La taille finale sera choisie tout à la fin lorsqu'on fait appel à la règle finale "Koch".

2. rule "LigneSpheres"
Avec la sphère préparée précédemment, nous allons créer une "ligne".
Ayant une taille de 1/8, nous effectuons un déplacement en x de 1/8 et modifions sa teinte de 1.

3. rule "Koch"
La règle du flocon de Koch est assez simple.
Une ligne est divisée en 3.
Le tiers central est remplacé par un triangle équilatéral...
A chaque nouvelle itération, nous réappliquons cela à toutes les arrêtes...

Attention, à retenir : notre ligne est faite de 16 boules de taille 1/8.
Notre ligne a donc une taille totale de 2. Ceci est important pour la suite.

Dans ma règle, j'ai commencé par réaliser les deux arrêtes visibles du triangle équilatéral.

En première ligne, nous déplaçons notre ligne  de 2/3 en x. (donc, 2 car la ligne a une à une taille de 2, c'est à dire : 6/3. et 1/3 de 6/3 = 2).
Nous la redimensionnons ensuite de 1/3.
Et enfin, nous lui appliquons un nouveau déplacement en x de -1/9.
Pourquoi ? Car le pivot de l'objet utilisé pour le redimensionnement se trouve au centre de l'objet et non sur son bord.
Lorsque nous redimensionnons un objet et que nous voulons l'aligner avec son objet référent, il faut obligatoirement passer par une translation de l'objet.

Pourquoi faire deux translations en x et non une seule ? Car si il avait fallu la faire une seule fois, nous aurions eu un déplacement de 5/9 uniquement, beaucoup moins logique à expliquer ou à comprendre de prime abord.
Enfin, nous appliquons une translation vers le haut (y) de 1/5 avant d'effectuer une rotation de 60°.
Pourquoi effectuer la translation avant la rotation? Car le pivot et donc l'axe y subirait également une rotation, rendant impossible d'effectuer une translation par rapport au reste de la scène.
Pourquoi 1/5? Le problème du redimensionnement fait que les objets ne sont plus alignés et il faut donc trouver une valeur correcte et le plus proche de la valeur exacte afin que l'image soit réaliste. Il m'aura donc fallu passer par une phase de test et d'essais pour trouver la bonne valeur.

En deuxième ligne, j'ai commencé par "fx", une commande signifiant que l'on souhaite effectuer un "miroir" sur l'axe x de l'objet. Le pivot se retournant également, j'ai simplement repris les valeurs de la première ligne et les ai modifiées en fonction...

Les troisième ligne est la plus simple. Nous effectuons simplement un redimensionnement de 1/3 et la replaçons ensuite de -1/9 en x et 1/9 en y afin de la faire correspondre à la ligne de l'itération précédente.

Pour la quatrième ligne, nous effectuons comme pour la troisième mais réalisons d'abord une translation de 4/3 en x afin de placer notre nouvelle ligne.

La dernière ligne, "LigneSpheres", fait que notre ligne de sphères apparaisse à chaque étape de notre règle :)

Attention, un bug dans Structure Synth fait que si vous remplacez la sphère par des boites, toutes celles apparaissant suite à l'utilisation de "fx" poseront un problème d'affichage (qui disparaît au rendu, mais rend l'utilisation difficile)





Licence Creative Commons
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.

Nouveaux tests - Structure Synth








Licence Creative Commons
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.

vendredi 24 mai 2013

The Angry MandelMoutain


Nouvelle petite modification sur le blog, je vais commenter mes images :) Il parait que c'est assez demandé :)
Il s'agit ici d'une réalisation à deux formules. jcube et mandelbox.
A tout ça a été appliqué un Julia aux valeurs positives.

Pour les couleurs, j'étais parti à la base sur des couleurs or/argent et une lumière bleue/verte mais une erreur de bouton a changé mon schéma de couleur et je l'ai retravaillé car ça donnait cet effet que je ne trouvais pas mal du tout :)

Le rendu s'est fait en 7680 * 4320 avec des valeurs de qualité moyenne.

Le fait de garder une qualité moyenne mais d'augmenter la résolution pour ensuite la rediminuer ne donnera pas forcément une "mauvaise qualité" mais donnera un effet "velouté" (un bon exemple est cette image : http://vanlindtmarc.blogspot.be/2012/09/jardin-de-reve.html ).

Le DOF n'a pas dû être, chose excessivement rare, modifié. J'ai appliqué le DOF sur la montagne centrale et  les valeurs par défaut ont parfaitement correspondu au résultat que j'attendais.

Licence Creative Commons
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.