IL 2016 SS
import peasy.*;
import peasy.org.apache.commons.math.*;
import peasy.org.apache.commons.math.geometry.*;
import peasy.test.*;
PeasyCam cam;
PImage moonImg;
float[] colorData;
int stepSize = 2;
void setup() {
size(500, 500, P3D);
cam = new PeasyCam(this, 500);
moonImg = loadImage("415183808_9d19a12439.jpg");
cam.setMinimumDistance(50);
cam.setMaximumDistance(500);
noStroke();
int _sumNum = 500 * 500;
colorData = new float[_sumNum];
for (int j=0; j<500; j+=stepSize) {
for (int i=0; i<500; i+=stepSize) {
int _index = i + j * 500;
color _c = moonImg.get(i, j);
float _sum = red(_c) + green(_c) + blue(_c);
colorData[_index] = _sum / 3.0;
}
}
}
void draw() {
background(0);
translate(-250, -250);
//image(moonImg, 0, 0);
for (int j=0; j<500; j+=stepSize) {
for (int i=0; i<500; i+=stepSize) {
int _index = i + j * 500;
fill(colorData[_index]);
pushMatrix();
float _zPos = map(colorData[_index], 0, 255, 0, 100);
translate(0, 0, _zPos);
rect(i, j, stepSize, stepSize);
popMatrix();
}
}
}