diff options
author | Travis CI <zmoelnig@travis-ci.umlaeute.mur.at> | 2015-03-19 20:12:11 +0000 |
---|---|---|
committer | Travis CI <zmoelnig@travis-ci.umlaeute.mur.at> | 2015-03-19 20:12:11 +0000 |
commit | 17dc0febb17888015be1e4ad1ed4b096a4909865 (patch) | |
tree | 0c32573795cf15c79d5e8f792772bf952dab415b /Gem/examples/10.glsl/mass.frag | |
parent | 454d0818e5ad0820771abebefa9758c66068b8d1 (diff) |
Gem 206d71791bc3642e8c5391a4c59c30ba7411fab8 osx/i386
built 'master:206d71791bc3642e8c5391a4c59c30ba7411fab8' for osx/i386
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; +} |