diff options
author | Travis CI <zmoelnig@travis-ci.umlaeute.mur.at> | 2015-03-19 23:06:26 +0000 |
---|---|---|
committer | Travis CI <zmoelnig@travis-ci.umlaeute.mur.at> | 2015-03-19 23:06:26 +0000 |
commit | bdae26678d39c83280ed5e353986705da6f423c5 (patch) | |
tree | a977d9c7a25b275245787de02830a05e30fa0fb9 /Gem/examples/10.glsl/mass.frag | |
parent | 095b7e513f736567848173f2572d8b329ad75af9 (diff) |
Gem 4990e2aec04f67a68fbd2878f4d99bb8042f68fa osx/x86_64
built 'master:4990e2aec04f67a68fbd2878f4d99bb8042f68fa' for osx/x86_64
Diffstat (limited to 'Gem/examples/10.glsl/mass.frag')
-rw-r--r-- | Gem/examples/10.glsl/mass.frag | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Gem/examples/10.glsl/mass.frag b/Gem/examples/10.glsl/mass.frag new file mode 100644 index 0000000..29a2ef2 --- /dev/null +++ b/Gem/examples/10.glsl/mass.frag @@ -0,0 +1,34 @@ +// Cyrille Henry 2008 +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect texture_mass_old,texture_link; +varying vec2 coord; +uniform float init; + +void main (void) +{ + vec4 color = vec4(0.,0.,1.,1.); + if ( (coord.x < 92.) && (coord.y < 64.) ) + { + vec4 pos = texture2DRect(texture_mass_old, coord)-vec4(0.5); + vec4 force = texture2DRect(texture_link, coord)-vec4(0.5); + + force = min(max(force,vec4(-0.5)),vec4(0.5)); + // on vire les +inf et -inf qui peuvent poser pb en cas d'instabilités + pos += force; + //increment de la position + + float reset = step(coord.x,1.); +// reset *= step(mod(coord.y,10.),4.); + // les point en x<1 sont tjrs reseté : ils sont dc imobiles + + color = mix(pos,vec4(coord.x/1000.,(coord.y-32.)/1000.,0.,0.),reset+(1.-reset)*init); + // couleur de sortie mixé avec couleur d'initialisation + + color += vec4(0.5); + color.a = 1.; + // preparation de la sortie (ajout de l'offset + virer l'alpha) + } + + gl_FragColor = color; +} |