processingのプロジェクトを作るときには、このUtil.pdeを加えてから始めると便利。
glUtil()はopenGLの光の重なり方を、flight404みたいな雰囲気にしてくれる。ってかflight404のブログに載ってた。
アルファを下げると、光が重なってくみたいで綺麗。
vertex(PVector)系は、3次元でVertexを書く際に便利な関数。
Util.pde
import processing.opengl.*; import javax.media.opengl.*; PGraphicsOpenGL pgl; GL gl; /** flight404 openGLユーティリティー <PRE> draw() { glUtil(); ~~~~~~hogehoge background(0); ~~~~~~hogehoge } </PRE> */ protected void glUtil() { pgl = (PGraphicsOpenGL) g; gl = pgl.gl; pgl.beginGL(); gl.glDisable(GL.GL_DEPTH_TEST); // This fixes the overlap issue gl.glEnable(GL.GL_BLEND);// Turn on the blend mode //gl.glBlendFunc(GL.GL_SRC_ALPHA,GL.GL_ONE); // Define the blend mode pgl.endGL(); } public void capture(char str) { if(keyPressed && key == str) { saveFrame("data/img-####.png"); } } /** PVector ユーティリティー @param p vertex point of PVector class */ public void vertex(PVector p) { vertex(p.x, p.y, p.z); } /** Utility for PVector class @param c1 control 1 of PVector class @param c2 control 2 of PVector class @param p point of PVector class */ public void bezierVertex(PVector c1, PVector c2, PVector p) { bezierVertex(c1.x, c1.y, c1.z, c2.x, c2.y, c2.z, p.x, p.y, p.z); } public void curveVertex(PVector p) { curveVertex(p.x, p.y, p.z); }