[Processing] Extrusion & log de modélisation 3D
Bonjour à tous !
Je découvre depuis peu l'environnement Processing, basé sur la plate-forme Java. Je suis en train d'étudier l'exemple "extrusion" fourni par défaut. Le code permet de faire "éclater" les pixels d'une image plane, selon leur brillance (* voir code ci-dessous). Plusieurs questions me viennent, auxquelles je n'arrive pas encore à répondre :
- est-il possible de remplacer la caractéristique "brightness" par une autre, qui agirait sur une autre information contenue dans les pixels ?
- comment faire pour obtenir les coordonnées dans l'espace de chaque pixel de l'image transformée, et les réinjecter dans un logiciel de simulation 3D, de manière à avoir une pré-modélisation d'objet?
Cette question de transfert entre Processing et un logiciel de modélisation 3D m'intéresse particulièrement. N'hésitez pas à soumettre la moindre piste en rapport ! Merci d'avance pour votre partage précieux, vive le web opensource et à bientôt j'espère =)
*Code par défaut :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
PImage extrude;
int[][] values;
float angle = 0;
void setup() {
size(640, 360, P3D);
extrude = loadImage("nom_image_stockee_dans_data.jpg");
extrude.loadPixels();
values = new int[extrude.width][extrude.height];
for (int y = 0; y < extrude.height; y++) {
for (int x = 0; x < extrude.width; x++) {
color pixel = extrude.get(x, y);
values[x][y] = int(brightness(pixel));
}
}
}
void draw() {
background(0);
angle += 0.005;
translate(width/2, 0, -128);
rotateY(angle);
translate(-extrude.width/2, 100, -128);
for (int y = 0; y < extrude.height; y++) {
for (int x = 0; x < extrude.width; x++) {
stroke(values[x][y]);
point(x, y, -values[x][y]);
}
}
} |