Nouveau jouet

January 17th, 2008

Les courbes de Béziers utilisées dans un canon à particules :

C’est encore relativement chaotique, mais il doit y avoir moyen d’en faire quelque chose de bien au final.

Ciel bleu à la demande

October 27th, 2007

Cet hiver, vous pouvez dire né à la morosité ambiante et au ciel gris grâce au nouveau ciel virtuel intégré dans Triton (lien de téléchargement en fin de post). Ce ciel est le résultat d’une modélisation physique mené par A.J. Preetham, Peter Shirley & Brian Smits.

Leur papier aborde la simulation prenant en paramètre 2 facteurs :

  • La position du soleil dans le ciel
  • La propreté de l’air, appelé turbidité
Ce dernier paramètre a l’un des effets les plus amusants que j’ai pu observer, avec une tirette, on peut passer d’un ciel pur avec un beau lever à un ciel parisien orange crado :

Ciel de Paris avec une turbidité de 4/5 environ

Ciel quasi pur avec une turbidité de 2

La turbidité fait référence aux phénomènes atmosphériques globaux, mais plus particulièrement à la diffusion de lumière dû aux particules présentes dans l’atmosphère. Les véhicules automobiles rejetant un paquet de particule dans l’atmosphère, ce paramètre permet de visualiser directement les ciels pollués.

L’avantage d’intégrer ce ciel dans triton est évidemment la possibilité de manipuler facilement ces paramètres (traduction : avec 3 tirettes en gros), dans une interface pas trop dégueu :

Et pour finir encore 2 derniers screen de ce qu’on peut obtenir en variant les paramètres :

Levé de soleil avec une turbidité de 2

Lever de soleil avec une turbidité de 6

Télécharger Triton

Spiral spirit

October 4th, 2007

Retour aux bases avec une “vraie” spirale qui s’avère plutôt problématique à calculer sur la carte graphique avec les informations de bases :

formula_realspiral.png

  • r est la distance au centre
  • a est un paramètre permettant modifier l’apparence de la spirale
  • theta étant la coordonnée angulaire de (x,y) en coordonnée polaire (qui est aussi calculé dans le shader, mais non présenté ici)
  • épaisseur étant un paramètre juste pour le fun

l’expression de base spirale en coordonnée polaire se résume à :

r = thetaa

On voit donc bien que le calcul de cette expression n’est pas anodine dans notre contexte, un approche incrémentale et inimplémentable sur carte graphique dans le contexte des shaders pourrait surement aboutir à une expression plus simple et plus rapide.

fichier triton de visualisation.

Formula’s file

October 4th, 2007

Aujourd’hui je poste juste les fichiers permettant de visualiser les formes des précédents billets. Pour pouvoir les visualiser vous devez télécharger Triton (si vous possédez une ancienne version, re-téléchargez, j’ai mis à jour récemment), et ouvrez les fichiers avec. La 3D c’est toujours plus sympa que 2-3 screen :) .

(les shaders sont inclus dans les fichier .trit)

Premières Spirales

October 2nd, 2007

Allez ce soir première formule s’attaquant aux spirales :

formula_firstspiral.png

Appliqué à, dans l’ordre, une tore, un plan et un cône et finalement une sphère. Vu que j’aime bien le résultat obtenu, je vais surement poursuivre un peut dans cette direction pour voir ce que je peux obtenir :)

Dalmatien sur formes

October 1st, 2007

Ce soir petite formule simple :

formula_dalmatien.png (c étant un réel quelconque)

Donc cette formule appliqué sur une sphère, une tore et un cône. A noter que la version non remplie du cône est plutôt sympa à regarder :

Formule sur Forme

September 26th, 2007

<

p>En guise d’entrainement à la programmation graphique (et plus spécifiquement aux shaders), je me suis remis à quelques test sur le GLSL, le langage de shader d’OpenGL. Le but du jeu était de plaquer une formule, plutôt simple sur une forme ‘classique’ de la géométrie dans l’espace.
La formule dujour est donc (tadada) : formula_formulesurforme.png

Ici r représente la distance à l’origine (en espace local), a une variable contrôlant le nombre de ‘cycles’ de la formule et n une variable permettant de contrôler l’épaisseur du résultat. Le résultat le plus simple est obtenu en plaquant cette formule sur un plan :

Les résultats sont beaucoup plus intéressant avec d’autres formes comme dans les images suivante, avec, dans l’ordre, la sphère, la SuperSurface et la tore avec 2 paramètres d’épaisseurs différents :

Le shader fonctionne en testant pour chaque points à l’intérieur des triangles dessinés à l’écran si un de ses points est valide la condition donnée par l’équation. Le problème de cette approche est que les formes de départ (sphère, tore) sont échantillonnées et des artéfacts apparaissent si le nombre de triangle utilisé pour représenter ces formes est insuffisant, comme dans le cas de la tore ci dessous :

Blog sur les langages

August 25th, 2007

Post éclair pour laisser le lien sur un blog parlant des langages en général : leur design, le système de typage, leurs optimisations. Il m’a pas mal aidé à trouver des infos lors de mon stage et amène régulièrement des papiers très intéressants sur les langage, bref un must pour toute personne intéressée dans le domaine.

The Lambda the Ultimate – The programming languages weblog

Massive bientôt

July 11th, 2007

Le développement de Massive Stream a repris dernièrement, et à défaut de pouvoir bosser sur l’interface comme il le faudrait (ça prendras pas mal de temps), une éneurme feature va pointer le bout de son nez. :)

Cela va se passer en 2 étapes :

  • d’ici quelques semaines nous verrons apparaitre la ‘brique’ dite d’expression où nous pourrons entrer une formule mathématique, ce qui simplifiera grandement le calcul. Cette expression sera interprété par le logiciel dans une micro VM codé par mes (tagada t)soins (tsoin).
  • Etape 2 cette brique va utiliser le projet de nats (binary brain dans le blogroll), un micro compilo qui va à partir du code intermédiaire de la VM (grosso modo votre expression mathématique réduite en une suite de commande) générer du code natif !

L’avantage du code natif c’est que ça va tracer sa maman voir son papa vu que ça va être ‘vectorisé’ (on pourra calculer 4 valeurs en un seul coup grâce aux instructions dites ‘vectorielles’ de vos jolis proco).

stay tuned ;)

Fractals – Résultats

March 18th, 2007

ça fait quelques jours que ça traine sur mon disque dur, les résultats du très long calcul sur les fractals, 6 secondes de vidéo. Aujourd’hui ce sont les résultats bruts qui sortent de MassiveStream.

Videos

Raw 1 Chaque image correspond au 8 bits de poids faible de l’image. Traduction : on ne garde que les détails de l’image, les zonez de hautes concentrations sont zappées.

final 1. Image traité, globalement par le même processus, ça ressemble beaucoup plus au résultat final. Seulement tous les détails sont littéralement écrasés. Donc la prochaine étape est d’appliquer une rampe de couleur pour obtenir une image faisant apparaitre les détails. Pour obtenir l’animation, il a fallu après avoir effectué le rendu, il a fallu établir des stats pour enfin pouvoir traiter les rendus et produire les images de l’animation.

Remerciements

(pour leur temps de calcul)

  • EzecKiel
  • nats
  • Crae
  • Fabzien
  • Quentin
  • Ma maman et ma tante (oui j’ai squatté leur PC aussi)