Archive for September, 2007

Formule sur Forme

Wednesday, 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 :