/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Interface Fractures III - SILICON (c) nova@deviator.si IF3Si.pde */ // undecorate window (remove window borders etc) - - - - - - - - - - - - - - - public void init() { frame.removeNotify(); frame.setUndecorated(true); frame.addNotify(); super.init(); } // load libs import oscP5.*; // Open Sound Control import netP5.*; // declarations - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // declare OSC object OscP5 oscP5; // IMAGE POOL, a 2D array PImage[][] imgPool; // texture (tiles) float texX = 0; float texY = 0; // generate an array of random numbers int[] rands = new int[500]; IntList randz; // arrayList // for draw cube int cubesnum = 20; PGraphics[] cubes = new PGraphics[cubesnum]; PShader blur; PGraphics bpass1, bpass2; // spheres int ptsW, ptsH; int numPointsW; int numPointsH_2pi; int numPointsH; float[] coorX; float[] coorY; float[] coorZ; float[] multXZ; PGraphics sphere; int tilesOverlap; void setup() { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - float sizefactor = 1; // define the size of the screen, 1 = 1080p size( int( 1920 * sizefactor ), int( 1080 * sizefactor ), P3D ); // renderer // framerate frameRate(60); smooth(32); // 32?? noCursor(); background(10); println("\n\n~~~ Hello. Starting Interface Fractures III - SILICON." + " - - - - - - - - - - - - - - - - - - - - - -\n"); // start oscP5, listening for incoming messages at port 12000 println("~~~ starting oscP5 ..."); oscP5 = new OscP5(this,12000); oscP5.plug(this,"ctlin","/ctlin"); // to be converted for PD OSC input // get all textures into an image pool println("\n\n~~~ loading textures into image pool ...\n"); imgPool = getImages("/images/"); // create an array of random value between -50 and 50 for (int i=0; i < 500; i++) { rands[i] = i-250; } shuffle(rands); // drawCube ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` // an array of PGraphics for (int i = 0; i < cubesnum; i++) { cubes[i] = createGraphics(width, height, P3D); } blur = loadShader("blur.glsl"); bpass1 = createGraphics(width, height, P3D); bpass1.smooth(); bpass2 = createGraphics(width, height, P3D); bpass2.smooth(); randz = new IntList(width); for (int i=0; i < width; i++) { randz.set(i, i); } randz.shuffle(); //println(randz); // spheres ptsW=30; ptsH=30; initializeSphere(ptsW, ptsH); // number of vertices around the width and height sphere = createGraphics(width, height, P3D); } // process OSC messages public void ctlin(int cc, int val) { // - - - - - - - - - - - - - - - - - - - - - - - // debug println("## OSC: /ctlin cc:" + cc + " value:" + val); if (cc == 2) { tilesOverlap = val; } /* // triggers are on controller number 0 if (cc == 0) { } if (cc == 2) { flySpeedXfactor = (val - 64); } // speed (&direction) on X axis [-1 - 1] FIXit! if (cc == 3) { flySpeedYfactor = (val - 64); } // speed (&direction) on Y axis [-1 - 1] FIXit! */ } void draw() { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // clean screen ````````````````````````````````````````````````````| blendMode(BLEND); screenClean(color(50)); // SCENENGINES / / / / / / / / / / / / / / / / / / / / / / / / / / | // draw spheress```````````````````````````````````````````````````| drawSpheres(boolean(0) ); // draw tiles `````````````````````````````````````````````````````| tiles(boolean(0), // render on/off color(0, 0, 0, 80), // background color (HSBA) color(80, 70, 20, 100), // tile color 20, // tile hue distance 0, // blendMode 6, // number of tiles on X axis 1, // number of tiles on Y axis 2, // texture bank number 0, // texture number/id 10, // texture speed X 1, // texture speed Y tilesOverlap // overlap. 127 = 300% ); // draw cubes `````````````````````````````````````````````````````| drawCube(boolean(0), cubes, 100, height/2, -100, 400, 300, 300, radians(frameCount), radians(frameCount*0.7), PI/2, 0); // test pattern```````````````````````````````````````````````````| testPattern(boolean(0), // on/off 2, 0, // img bank & ID 255, // image alpha 10, // number of horizontal 'lanes' 10, // density 4, // stroke width 255, // stroke alpha 2 // speed ); // debug `````````````````````````````````````````````````````````| // draw test picture testPicture(boolean(0)); // frames per second displayFps(true); // document autoSnap(false); } // --------------------------------------------------------------------------