Bonjour,
est-ce possible de récupérer un objet tridimensionnel fabriqué avec un logiciel x pour l'utiliser dans un programme processing ???
J'ai vu qu'il était possible d'exporter un objet au format dxf mais qu'en est-il de l'importation ?
Dans mon bouquin sur Processing, il est fait mention du format OBJ mais comment faire dans la pratique ?
De plus, il faudrait pouvoir appliquer des textures... Je me demande si on peut utiliser Processing pour ce genre de chose ???
Hors ligne
Tiens, un mec a fait un importeur .obj, qui prends en compte les textures : http://www.xs4all.nl/~elout/proce55ing/ … index.html
Apparement dans le setup il parse le fichier obj (fichier texte) et stock les valeurs dans un tableau, et dans le draw, il applique les valeurs (Faces/Vertex) avec une texture.
Hors ligne
Hors ligne
Salut,
Je remonte le topic....Après avoir vaguement survolé processing, je m'y rattelle....à petit pas....
Voilà, je viens d'essayer la librairie de Saito (obj loader), et ça ne marche pas... J'ai un message d'erreur suivant :
The constructor OBJModel(obj_loader, String, String, int) is undefined
le code est le même que donner en exemple sur le site :
import saito.objloader.*; // declare that we need a OBJModel and we'll be calling it "model" OBJModel model; float rotX; float rotY; // these booleans will be used to turn on and off bits of the OBJModel boolean bTexture = true; boolean bStroke = false; boolean bMaterial = true; void setup() { size(600, 600, P3D); // making an object called "model" that is a new instance of OBJModel model = new OBJModel(this, "CHAMBRANLE.obj", "relative", TRIANGLES); // turning on the debug output (it's all the stuff that spews out in the black box down the bottom) model.enableDebug(); model.scale(8); noStroke(); } void draw() { background(32); lights(); //this will do nothing until the model material is turned off fill(255,0,255); pushMatrix(); translate(width/2, height/2, 0); rotateX(rotY); rotateY(rotX); model.draw(); popMatrix(); } void keyPressed() { // turns on and off the texture listed in .mtl file if(key == 't') { if(!bTexture) { model.enableTexture(); bTexture = true; } else { model.disableTexture(); bTexture = false; } } else if(key == 'm') { // turns on and off the material listed in .mtl file if(!bMaterial) { model.enableMaterial(); bMaterial = true; } else { model.disableMaterial(); bMaterial = false; } } else if(key == 's') { if(!bStroke) { stroke(10, 10, 10); bStroke = true; } else { noStroke(); bStroke = false; } } // the follwing changes the render modes // POINTS mode is a little flakey in OPENGL (known processing bug) // the best one to use is the one you exported the obj as // when in doubt try TRIANGLES or POLYGON else if(key=='1') { stroke(10, 10, 10); bStroke = true; model.shapeMode(POINTS); } else if(key=='2') { stroke(10, 10, 10); bStroke = true; model.shapeMode(LINES); } else if(key=='3') { model.shapeMode(TRIANGLES); } else if(key=='4') { model.shapeMode(POLYGON); } else if(key=='5') { model.shapeMode(TRIANGLE_STRIP); } else if(key=='6') { model.shapeMode(QUADS); } else if(key=='7') { model.shapeMode(QUAD_STRIP); } } void mouseDragged() { rotX += (mouseX - pmouseX) * 0.01; rotY -= (mouseY - pmouseY) * 0.01; }
mon objet est bien en place, un wavefront sortie de Blender... j'utilise processing 1.5.1 sur mac os 10.6.8...
J'ai cherché une solution mais rien à l'horizon.....
D'où vient l'erreur?
Dernière modification par le singe vert (2012-02-14 06:50:45)
Hors ligne
le singe vert a écrit:
Voilà, je viens d'essayer la librairie de Saito (obj loader), et ça ne marche pas... J'ai un message d'erreur suivant :
The constructor OBJModel(obj_loader, String, String, int) is undefined
J'y connais que dalle en processing, mis elle est bien installée ta lib ??
Non parce qu'apparemment, le constructeur OBJModel() ne lui évoque que dalle à ton p5...
Hors ligne
La librairie est bien installé....
je viens de tester le code avec processing 1.2 et là tout fonctionne mais j'aimerais tout de même que le code tourne sur une version 1.5 voir 2.....
je test sur la 2.
Hors ligne
Ce serait étonnant que la librairie soit pas compatible 0149 et ultérieur.
A ce propos faut s'attendre a ce que certaines librairies ne soient pas compatible avec la 2.0, entre autre a cause de la modification du mode p3d...
Hors ligne
Alors chose étonnante, ça marche sur P5 2.a...
Hors ligne
Hello,
Vu le message d'erreur que tu décris "The constructor OBJModel(obj_loader, String, String, int) is undefined"
Le constructeur devrait recevoir un objet PApplet comme argument (voir le code de la classe ici : http://code.google.com/p/saitoobjloader … el.java#77 ) et là il semble qu'il ne le reçoive pas...
Tu peux essayer de définir l'objet PApplet avant le setup() avec :
PApplet sketch = this;
Et construire l'objet dans le setup() avec :
model = new OBJModel(sketch, "CHAMBRANLE.obj", "relative", TRIANGLES);
Hors ligne
Pages: 1