Pages: 1
Bonsoir,
Suite a mon arriver en première je suis bien obliger de faire un tpe :p Donc mon groupe et moi nous nous sommes lancer dans la réalité augmentée avec processing. Donc nous faisons des recherches et nous nous renseignons jusqu'à tomber sur un site qui nous plait bien donc nous mettons tous en oeuvre, notre professeur nous recommande de mettre nos drivers de carte graphique a jour ... Nous lançons le programme --> MultiMarkerTest. Mais même avec le code tout fait nous rencontrons des problèmes de librairie donc ca réussi a trouver l'erreur. Mais cette erreur impossible a trouver la source etc ...
citation :
Framebuffer error (unknown error), rendering will probably not work as expected Read http://wiki.processing.org/w/OpenGL_Issues for help.
OpenGL error 1286 at bot beginDraw(): invalid framebuffer operation
GSVideo version: 1.0.0
NyAR4psg/1.3.1;NyARToolkit/4.1.1
OpenGL error 1286 at bot endDraw(): invalid framebuffer operation
java.lang.NullPointerException
at processing.mode.java.runner.Runner.findException(Runner.java:926)
at processing.mode.java.runner.Runner.reportException(Runner.java:871)
at processing.mode.java.runner.Runner.exceptionEvent(Runner.java:797)
at processing.mode.java.runner.Runner$2.run(Runner.java:686)
J'ai pris le code directement dans la librairie juste changer l'importation de la librairie GSvideo. Alors que le test de vidéo avec cette même librairie fonctionne très bien. Si vous voulez le code je vous le met si vous en avez besoin sinon c'est tout simplement dans la librairie NyArtoolkit.
citation :
/*
MultiMarker class function test program
*/
import codeanticode.gsvideo.*;
import jp.nyatla.nyar4psg.*;
import processing.opengl.*;
PFont font=createFont("FFScala", 32);
GSCapture cam; MultiMarker nya;
void setup() {
size(640,480,P3D);
colorMode(RGB, 100);
cam=new GSCapture(this,width,height);
cam.start();
nya=new MultiMarker(this,width,height,"camera_para.dat",new NyAR4PsgConfig(NyAR4PsgConfig.CS_RIGHT_HAND,NyAR4PsgConfig.TM_NYARTK));
nya.setARClipping(100,1000);
nya.setConfidenceThreshold(0.6);
nya.addARMarker("patt.hiro",80);
nya.addARMarker("patt.kanji",80);
nya.addNyIdMarker(31,80);
println(nya.VERSION); //バージョンの表示
}
int c=0;
void draw() {
c++;
if (cam.available() !=true) {
return;
}
background(255);
cam.read();
//バックグラウンドを描画
nya.drawBackground(cam);
nya.detect(cam);
if(nya.isExistMarker(0)){
nya.beginTransform(0);//マーカ座標系に設定
{
drawBox(255,0,0);
drawMarkerXYPos(0);
}
nya.endTransform(); //マーカ座標系を終了
drawMarkerPatt(0);
drawVertex(0);
//マーカのスクリーン座標を中心に円を書く
PVector p=nya.marker2ScreenCoordSystem(0,0,0,0);
noFill();
ellipse(p.x,p.y,200,200);
}
if(nya.isExistMarker(1)){
nya.beginTransform(1);//マーカ座標系に設定
{
drawBox(0,255,0);
drawMarkerXYPos(1);
}
nya.endTransform(); //マーカ座標系を終了
drawMarkerPatt(1);
drawVertex(1);
}
if(nya.isExistMarker(2)){
nya.beginTransform(2);//マーカ座標系に設定
{
drawBox(0,0,255);
drawMarkerXYPos(2);
println(nya.getLife(2));
}
nya.endTransform(); //マーカ座標系を終了
drawMarkerPatt(2);
drawVertex(2);
}
}
void drawBox(int ir,int ig,int ib)
{
pushMatrix();
drawgrid();
fill(ir,ig,ib);
stroke(255,200,0);
translate(0,0,20);
box(40);
noFill();
translate(0,0,-20);
rect(-40,-40,80,80);
popMatrix();
}
//この関数は、マーカパターンを描画します。
void drawMarkerPatt(int id)
{
PImage p=nya.pickupMarkerImage(id,
40,40,
-40,40,
-40,-40,
40,-40,
100,100);
// PImage p=nya.pickupRectMarkerImage(id,-40,-40,80,80,100,100);
image(p,id*100,0);
}
//この関数は、マーカ平面上の点を描画します。
void drawMarkerXYPos(int id)
{
pushMatrix();
PVector pos=nya.screen2MarkerCoordSystem(id,mouseX,mouseY);
translate(pos.x,pos.y,0);
noFill();
stroke(0,0,100);
ellipse(0,0,20-c%20,20-c%20);
popMatrix();
}
//この関数は、マーカ頂点の情報を描画します。
void drawVertex(int id)
{
PVector[] i_v=nya.getMarkerVertex2D(id);
textFont(font,10.0);
stroke(100,0,0);
for(int i=0;i<4;i++){
fill(100,0,0);
ellipse(i_v[i].x,i_v[i].y,6,6);
fill(0,0,0);
text("("+i_v[i].x+","+i_v[i].y+")",i_v[i].x,i_v[i].y);
}
}
void drawgrid()
{
pushMatrix();
stroke(0);
strokeWeight(2);
line(0,0,0,100,0,0);
textFont(font,20.0); text("X",100,0,0);
line(0,0,0,0,100,0);
textFont(font,20.0); text("Y",0,100,0);
line(0,0,0,0,0,100);
textFont(font,20.0); text("Z",0,0,100);
popMatrix();
}
J'espère que vous pourrez m'aider s'il vous plaît car je suis dans la merde pour l'instant Merci.
PS : Je n'y connais rien
Dernière modification par Rweisha (2013-11-18 18:56:41)
Hors ligne
Salut Rweisha,
Je ne sais pas quelle version de Processing tu utilises mais la librairie GSVideo n'est plus supportée depuis la version 2.0 . A priori le développement à été arrêté car depuis la version 2.0, Processing s'est justement appuyée sur GSVideo pour refondre complètement la libraire Video qui est incluse d'origine dans le logiciel.
Essaye peut-être la version 1.5.1 qui est toujours disponible sur le site de Processing.
Bon courage pour ton TPE
Hors ligne
Merci enfin réussi après des semaines de recherche Mais maintenant que tout fonctionne je voudrait créer mon Marqueur Mais je ne trouve pas comment faire maleureusement si quelqu'un pourrait m'aidez sa m'enlèverais une épine du pieds Merci
Hors ligne
Pages: 1