blog.omine.net

Posts tagged with “glsl”


GLSL Blob 2

February 22nd, 2009

Lightning the scene with the vertex shader.
Made with OpenFrameworks.
Music: “Trash Scapes” by Ellen Allien.

GLSL Blob

February 21st, 2009

My first GLSL -based animation. The blob is made of 3 glutWireSpheres deformed by applying a vertex shader. Deformation is affected by the music and mouse coordinates. In the code snippet below, fft is a value taken from ofSoundGetSpectrum and mult is the pair of mouse coordinates (x, y).

#version 120
uniform float fft;
uniform vec2 mult;
uniform vec3 col;
varying vec4 v;
void main()
{
    v = vec4(gl_Vertex);
    vec4 v2 = v;
    v.x += cos( v2.z * mult.x ) * fft;
    v.y += sin( v2.x * mult.y ) * fft;
    v.z += cos( v2.y * mult.x ) * fft;
    gl_Position = gl_ModelViewProjectionMatrix * v;
}

Check the high-res images at Flickr .
Made with OpenFrameworks .
Music: “Geek Down” by J Dilla.

OpenFrameworks audio visualization

December 26th, 2008


Passion Pit – Sleepyhead from eduardo omine on Vimeo.

After making some tests with Java OpenGL (JOGL) in Eclipse, I decided I should try OpenFrameworks again to delve deeper into OpenGL. The main problem with JOGL is that it’s a “layer” on top of the original OpenGL API; some things are different and often more complex in JOGL (for example the need to pass ByteBuffers instead of arrays).

This audio visualization is a simple exercise with FBOs, VBOs and shaders. An audio-reactive particle system (512 quads) is rendered to a FBO and applied as texture to a cube. This cube is then rendered to a second FBO, which is applied as texture to a second cube. There is a slight blur effect made with GLSL shaders. The stripes result from the way the cube was UV-mapped, an unexpected effect that turned out interesting.

At a 640×480 pixels resolution, framerate varies from 30 to 60 FPS in my computer, equipped with a GeForce 6200 (I need to upgrade my PC).

Happy 2009 to all! :-)

 ← Previous