jeudi 27 juin 2013

Tour Kennedy - Liège



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.

Réalisations diverses



Test animation Structure Synth

Petit test d'animation réalisé avec Structure Synth.

Pour cela, il faut créer deux fichiers.

Le premier dans lequel nous aurons notre forme, dont voici le code :


#define rotz 45 
{z -0.01 s 256 256 1 h 199 }box 
test 
rule test md 15 {
    maboite {x 500/1000 s 707/1000 707/1000 1.002 rz rotz h -10} test
    {x -500/1000 s 707/1000 707/1000 1.002 rz rotz h -10} test 


rule maboite { {h 200}box }


Comme nous pouvons le voir, nous avons défini une variable "rotz" qui sera utilisée pour l'animation.
Nous créons donc un second fichier dans lequel nous mettrons ce code javascript :


#javascript 

function pad(number){ 
    number = number + ''; // convert to string 
    while (number.length < 4) { 
       number = "0" + number; 
    } 
    return number; 


Builder.load("NouveauMovie.es"); 
max =360; 
for (i = 0; i <= max; i+=1) { c = i/max; Builder.reset();
   Builder.setSize(640,360);
   Builder.define("rotz",c*360); 
   Builder.build(); 
   name = "./outputanimation" + pad(i); 
   Builder.templateRenderToFile("Sunflow-Colored.rendertemplate", name + ".sc",true); 
   Builder.execute("sunflow", name + ".sc -nogui -o " + name + ".png", true); 
}


Et nous obtenons ainsi le résultat suivant :

Blue/Red/White Smooth Spaceship


Mandelbulb3Dv18{ g.....c3...eA...w....2M..AUBCguFkxBtzuPawBhkqD4EPqpW68jzFz92mpgzvvs..XiWuco/DTxj ................................Tfoa2MjBe.2........Y.RQg0......E........y.2...wD ...Uz6....UT4.../Q.0/....2.s4...T1....E3.....QuYSjvDZqjD/Q......10EM1dkpXm1....2 /FEnAnQD12..12......................OaNaNaNaxz9............3/....42...sD...../.. .zHnAnQDbQ9gKDoCkwXJX8AobJE1zILGNCT19BjjLBF89canrvfX/XSOrKawykOEnFKiF0njvwzYLnv8 AwP5yGh2Cl1Az.79ln83KQjDU.....oGn/..ms/.......kD/U....sD..G..................... .............oAnAt1...sD.....w1.........................................O....k1. .....Ksulz1.......kz.wzzzX.U..6......U5...EB....m....A....EB....2/...I1.....SJ52 k62U.qFG9yzb2zzzRYoWzz7lz16/.4mzlYYB..kj3C.APnxj6sh4cHdepz9.J4XnMFLrz4.28.kFrA0. .Ub96aAIVz9.1se7Umvxz0........../EU0.wzzz1...........s/...................E.2c.. zzzz.............0...................2./8.kzzzD............G.................... /EU0.wzzz1...................................wzzz1UvNPcv0pkzzzD.yRiibfb4z1....XR Svx1bwzzz1UvNPcvXEnzzzD.ibhVijLEzzzz.sSq4uikCxzzz1UvNPcv2jpzzzD.ibhViLBO..kz.sSq 4uy2qxzzz1UvNPcv..EsUa3feeWCNqGQIJ36wk8EwyLsUa3fhZ4PfZrRVZb9e/rN................ E....6E.F2U.....I....I....EE0x4SBx4N934Pd/UQ..........................k/C....... ...................yzAnAnAnAnAyD........Uz1........sz.........yD................ ................................................................................ .....................A.....3....6....2YEjVrIhxqPoVaFjl4N........................ .Q...6..0......................E........Uz1........wz...................M.2..... ...wz........./EnAnAnAnAHz1..................................................... ................................} {Titel: Bleublancrouge}


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.

mercredi 19 juin 2013

Tutoriels vidéos - Mandelbulb3D

Partie 1 : Les bases de l'interface



Partie 2 : Dynamic Fog on Iteration / Brouillard dynamique selon l'itération



Partie 3 : L'interface - partie 2




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.






dimanche 9 juin 2013

Forge of Hades

Merci à Eric Gazano pour m'avoir trouvé un titre, c'est un des choses que j'aime le moins faire ^^

Pour cette image, je me suis basé sur trois mandelbox différentes :

  • ABoxSmoothFold
  • ABoxVSShapes
  • Amazing Box
Les box n'ont pas été beaucoup modifié j'ai surtout modifié l'itération à laquelle chaque box influait sur les autres.

Deux méthodes pour cela :
La première est de modifier directement l'itération dans la fenêtre de formule :


Comme nous pouvons le voir ici, IterationCount est mis à 6.
N'hésitez jamais à tenter des modifications à ce niveau, vous obtiendrez rapidement de nouveaux résultats, inattendus et magnifiques :)

Le problème de cette méthode est qu'elle n'est pas très visuelle et les résultats pouvant être très aléatoire, elle peut être assez lourde à utiliser car assez longue à utiliser avant d'obtenir un résultat satisfaisant.

Pour cela, nous allons voir une autre méthode, apparue il y a quelques versions seulement, qui permet de modifier directement cela depuis la fenêtre de prévisualisation

















Deuxième méthode :

Comme on peut le voir sur cette copie d'écran, dans la colonne à droite, la valeur de "Iterations" de la section "Formula values" est à 6.
Il suffit de modifier directement ce nombre avec les petites flèches pour instantanément voir la différence.

Attention cependant, il se peut que vous testiez et que cela en change absolument rien.
Cela viendra sans doute d'une chose : vous n'êtes pas "au bon endroit" dans votre objet fractal.
Il ne faut pas oublier qu'un objet fractal est infini et que nous avons, en général, une vue, sur seulement un certains nombre d'itérations.

Petit exemple à partir d'un mandelbulb couplé à "Menger Sponge".

1. Nous avons donc ici notre mandelbulb de base.
Si nous rajoutons en seconde formule une menger sponge, nous allons obtenir...

















2. ... cet objet. Objet formé de deux formules ayant leurs itérations à 1.
Si nous augmentons un peu le nombre d'itérations de la Menger Sponge, la Menger sponge va "imposer sa forme" à la formule principale, nous allons donc obtenir...












3. Ce nouvel objet où l'on reconnait aussi bien la forme du mandelbulb que celle de la menger sponge.
Mais si nous commençons maintenant à augmenter l'itération du mandelbulb...














4. Nous revenons de plus en plus à notre mandelbulb originel...
Il faudra donc rentrer dans l'objet pour retrouver notre formule menger sponge...














5. ... comme nous pouvons le voir ici.

Il existe un moyen d'avoir plus ou moins une idée de où nous nous trouvons et du niveau d'itération auquel nous nous trouvons, grâce à l'"Iteration Fog", mais nous verrons ça une autre fois :)











Donc, pour en revenir à notre image principale, il faut donc faire attention à tout un tas de choses quand on modifie l'itération des objets, mais les résultats obtenus peuvent être spectaculaires :)




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.

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 :


( sourcehttp://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.