Using vertex shader in our project
In the testApp.h
file, in the testApp
class declaration, add the shader object declaration as follows:
ofShader shader; //Shader
At the end of the setup()
function declaration, add the following line for loading shaders:
shader.load( "shaderVert.c", "shaderFrag.c" );
Change the empty update()
function with the following code:
float time0 = 0; float phase = 0; float distortAmount = 0; void testApp::update(){ //Compute dt float time = ofGetElapsedTimef(); float dt = ofClamp( time - time0, 0, 0.1 ); time0 = time; float speed = ofMap( mouseY, 0, ofGetHeight(), 0, 5 ); phase += speed * dt; distortAmount = ofMap( mouseX, 0, ofGetWidth(), 0, 1.0 ); }
This function computes time step dt
as a time difference between the current time and time of previous calling of the update()
function (see details in the Implementing a particle in the project section in Chapter 3, Building a Simple Particle System). Next it computes the phase
and distortAmount
parameters...