/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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; 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); } void draw() { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // clean screen ````````````````````````````````````````````````````| /* blendMode(BLEND); screenClean(color(50)); // SPHERES ----------------------------------------------------------- //offscreen render spheres sphere.beginDraw(); sphere.blendMode(BLEND); sphere.rect(0, 0, width, height); sphere.blendMode(DARKEST); sphere.noStroke(); sphere.pushMatrix(); sphere.translate(width/2+(width/8), height/2, 580); sphere.rotateX(radians(float(frameCount) * 0.1)); sphere.rotateY(radians(float(frameCount) * 0.23)); sphere.rotateZ(radians(float(frameCount) * 0.2)); textureSphere(sphere, 400, 400, 400, imgPool[3][1]); sphere.popMatrix(); sphere.pushMatrix(); sphere.translate(width/2+(width/8), height/2, 580); sphere.rotateX(radians(float(frameCount) * 0.2)); sphere.rotateY(radians(float(frameCount) * 0.13)); sphere.rotateZ(radians(float(frameCount) * 0.01)); textureSphere(sphere, 390, 390, 390, imgPool[3][1]); sphere.popMatrix(); sphere.endDraw(); // tint(0); // image(sphere, 0, 0); textureWrap(REPEAT); //textureMode(NORMAL); pushMatrix(); //tint(255); translate(width/2, height/2); // center coordinate system translate(((frameCount*1) % width) - width/2,0); //stroke(0,50); //strokeWeight(1); noStroke(); float quadW = 500; float quadH = height; float v1x = 0; // sin(radians(frameCount))*250+400; pushMatrix() ; //rotate(PI/PI); beginShape(QUADS); texture(sphere); vertex(-quadW/2, -quadH/2, 0, 0); vertex( quadW/2, -quadH/2, quadW, 0); vertex( quadW/2, quadH/2, quadW, quadH); vertex(-quadW/2, quadH/2, 0, quadH); endShape(); popMatrix(); popMatrix(); */ // -------------------------------------------------------------------------- // SCENENGINES // draw tiles `````````````````````````````````````````````````````| tiles(boolean(1), // 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 64 // 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); } // --------------------------------------------------------------------------