not good but great

プログラミング、アート、映画・本の感想について書きます。

Processing3DやOpenGLレンダラを使って、3次元の描画をする

3Dを描画する

OpenGLレンダラを使う

ProcessingにはJAVA2D、Processing2D、3D、OPENGLのレンダラが用意されています。デフォルトはJAVA2Dとなっています。3Dで描画するにはProcessing3DかOPENGLに変更する必要があります。Processing3DはJAVAアプレットをWeb上で実行することに優れています。今のところそれは考えていないので、Processing3Dよりも高速なOPENGLを使います。

球を描画する

f:id:naoyashiga:20140505181004p:plain

import processing.opengl.*;

void setup(){
  size(465,465,OPENGL);
  sphereDetail(40);
  
  translate(width/2,height/2,0);
  
  sphere(100);
}

sphereDetailは球のきめ細かさ、sphereには球の半径を設定します。

ノイズを3Dで動かす


これまでやってきたノイズのコードにz軸を加えます。

立方体を動かす

import processing.opengl.*;

float xStart,yStart,zStart;
float xNoise,yNoise,zNoise;
float xStartNoise,yStartNoise,zStartNoise;

float sideLength = 200;
float spacing = 20;
void setup(){
  size(500,500,P3D);

  background(255);
  sphereDetail(3);
  noStroke();
  
  xStartNoise = random(20);
  yStartNoise = random(20);
  
  xStart = random(10);
  yStart = random(10);
  zStart = random(10);  
}

z軸を加えて、3重のfor文で回すので重くなります。従って「sphereDetail(3);」としておおざっぱな球にしました。サイズが小さいので、問題にはならないと考えました。