import javax.media.opengl.*; import processing.opengl.*; PFont font; PImage spot; SphericalDistanceCalculator SDC; PointOnUnitSphere pous[]; int nPous; int maxNPous; float mx = 0; float my = 0; void setup(){ size(400,440,OPENGL); hint(ENABLE_OPENGL_4X_SMOOTH); spot = loadImage("spot32inv.jpg"); font = loadFont("SnellRoundhand-Bold-16.vlw"); nPous = 1; maxNPous = 256; pous = new PointOnUnitSphere[maxNPous]; for (int i=0; i 60){ nPous = max(20, nPous-4); } if (frameCount % 10 == 0){ if ((mspf < 16.66666) || (millis()<5000)) { nPous = min(maxNPous, nPous+1); lastAddTime = now; } else if (mspf > 17.66666){ if (millis()>5000){ nPous = max(20, nPous-1); } } } // Choose the right blend function. fill(255); int a,b; PGraphicsOpenGL pgl = (PGraphicsOpenGL) g; // g may change GL gl = pgl.beginGL(); gl.glDisable(gl.GL_DEPTH_TEST); gl.glEnable(gl.GL_BLEND); int sfact[] = { gl.GL_ZERO, gl.GL_ONE, gl.GL_SRC_COLOR, gl.GL_ONE_MINUS_SRC_COLOR, gl.GL_DST_COLOR, gl.GL_ONE_MINUS_DST_COLOR, gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA, gl.GL_DST_ALPHA, gl.GL_ONE_MINUS_DST_ALPHA, gl.GL_CONSTANT_COLOR, gl.GL_ONE_MINUS_CONSTANT_COLOR, gl.GL_CONSTANT_ALPHA, gl.GL_ONE_MINUS_CONSTANT_ALPHA, gl.GL_SRC_ALPHA_SATURATE }; int dfact[] = { gl.GL_ZERO, gl.GL_ONE, gl.GL_SRC_COLOR, gl.GL_ONE_MINUS_SRC_COLOR, gl.GL_DST_COLOR, gl.GL_ONE_MINUS_DST_COLOR, gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA, gl.GL_DST_ALPHA, gl.GL_ONE_MINUS_DST_ALPHA, gl.GL_CONSTANT_COLOR, gl.GL_ONE_MINUS_CONSTANT_COLOR, gl.GL_CONSTANT_ALPHA, gl.GL_ONE_MINUS_CONSTANT_ALPHA }; a = 2; b = 8; gl.glBlendFunc (sfact[a], dfact[b]); // Rotate and draw the points. float R = 300; mx = 0.99*mx + 0.01*(mouseX-width/2); my = 0.99*my + 0.01*(mouseY); pushMatrix(); translate(width/1, 400, 0); rotateY(millis()/5000.0); rotateY(mx/50.0); rotateX(HALF_PI); rotateX(0-my/50.0); for (int i=0; i