Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#16 2010-11-15 21:15:04 Re : Complex Ginzburg-Landau equation

Staross
membre
Date d'inscription: 2008-04-03
Messages: 322

Re: Complex Ginzburg-Landau equation



Tu t'y connais en shaders ? J'ai essayé avec processing de faire une équation de diffusion mais ça donne pas vraiment le bon trucs, y'a des carrées qui apparaissent, il a l'air de faire une approximation...

http://codelab.fr/up/diff.png

Mon fichier glsl :


uniform sampler2D tex;
uniform vec2 offset;

void main(void)
{

    float dx = offset.s;
    float dy = offset.t;
    vec2 st = gl_TexCoord[0].st;

    // Apply 3x3 gaussian filter
    vec4 color     = -4.0 * texture2D(tex, st);
    color        += 1.0 * texture2D(tex, st + vec2(+dx, 0.0));
    color        += 1.0 * texture2D(tex, st + vec2(-dx, 0.0));
    color        += 1.0 * texture2D(tex, st + vec2(0.0, +dy));
    color        += 1.0 * texture2D(tex, st + vec2(0.0, -dy));

   
    gl_FragColor = 1.0*color/3.0 ;
}

Hors ligne

 

#17 2010-11-15 21:19:37 Re : Complex Ginzburg-Landau equation

rep
modérateur
Lieu: Toulouse
Date d'inscription: 2008-02-27
Messages: 1444
Site web

Re: Complex Ginzburg-Landau equation



Non je m'y connais pas plus que ça, juste je m'y intéresse et les utilise car c'est très économe en terme de ressources. Mais regarde l'exemple GEM/Pd cité plus haut, c'est assez souple d'emploi et très efficace.
Pour le patch dont je parlais il faut que je le retrouve sur ma machine qui vient de rendre l'âme (la 3eme en 1 an, je commence à me demander sérieusement si tous ces produit informatique actuels (hardware j'entend) ne sont pas tout simplement tous de la MERDE en barre)

Hors ligne

 

#18 2010-11-15 21:34:08 Re : Complex Ginzburg-Landau equation

Staross
membre
Date d'inscription: 2008-04-03
Messages: 322

Re: Complex Ginzburg-Landau equation



Bon en faisant tout dans le shader ça à l'air de mieux marcher...

uniform sampler2D tex;
uniform vec2 offset;

void main(void)
{

    float dx = offset.s;
    float dy = offset.t;
    vec2 st = gl_TexCoord[0].st;
   
    vec4 A = texture2D(tex, st);
   
    float dt=0.01;

    // Apply 3x3 gaussian filter
    vec4 D2A     = -4.0 * texture2D(tex, st);
    D2A        += 1.0 * texture2D(tex, st + vec2(+dx, 0.0));
    D2A        += 1.0 * texture2D(tex, st + vec2(-dx, 0.0));
    D2A        += 1.0 * texture2D(tex, st + vec2(0.0, +dy));
    D2A        += 1.0 * texture2D(tex, st + vec2(0.0, -dy));

   
    gl_FragColor =  A +  dt*( 20.0*D2A ) ;
}

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024