Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// partage de liens //// une carte des membres//// (apéros) codelab


Apéro codelab #35 à Rennes, au Jardin Moderne, le 5 mai 2017

#1 2014-04-23 15:12:02 texturer une sphère

caracteriel
membre
Date d'inscription: 2011-07-03
Messages: 129

texturer une sphère



Bonjour,

   J'essaye de texturer une vidéo sur une sphère et je ne sais pas trop pourquoi ça ne marche pas.
Voilà ce que j'ai fait :

testApp.h

ofVideoPlayer test;
GLUquadricObj *quadric;

int x;
        int y;

unsigned char *     video;
        ofTexture            videoTexture;

testApp.cpp

setup :

test.loadMovie("kolor.mp4");
    test.play();

    ofSetBackgroundAuto(false);
    ofSetFrameRate(30);

     glEnable(GL_DEPTH_TEST);
    ofDisableArbTex(); //needed for textures to work with gluSphere

    quadric = gluNewQuadric();
    gluQuadricTexture(quadric, GL_TRUE);
    gluQuadricNormals(quadric, GLU_SMOOTH);

    x=test.getWidth();
    y=test.getHeight();
    cout<<" long"<< x<< endl;
    cout<<" haut"<< y<<endl;

    video     = new unsigned char[x*y*3];
    videoTexture.allocate(x,y, GL_RGB);

update :


   test.update();
      if (test.isFrameNew()){
    int totalPixels = x*y*3;
    unsigned char * pixels = test.getPixels();
    for (int i = 0; i < totalPixels; i++){
        video[i] = pixels[i];
    }
    videoTexture.loadData( x, y, GL_RGB);
}

draw :

ofTranslate(ofGetWidth()/2, ofGetHeight()/2, 0);


    videoTexture.bind();
    gluSphere(quadric, 200, 1000, 1000);

    videoTexture.unbind();

////////////////////////////////

En gros, ça ne fonctionne pas !
Une idée ?

Hors ligne

 

#2 2014-04-23 16:43:19 Re : texturer une sphère

nononononono
membre
Lieu: Toulouse
Date d'inscription: 2011-02-04
Messages: 601

Re: texturer une sphère



salut tu n'est pas loin.
le testapp.h

Code (C++) :

	ofVideoPlayer test;
	GLUquadricObj *quadric;
	
	int x;
	int y;
	
	unsigned char *     video;
	ofTexture            videoTexture;	
	ofEasyCam cam;

le testapp.cpp

Code (C++) :

 
//--------------------------------------------------------------
void testApp::setup(){
	test.loadMovie("kolor.mp4");
    test.play();
	test.setSpeed(1.);
    //ofSetBackgroundAuto(false);
    ofSetFrameRate(30);
	
	glEnable(GL_DEPTH_TEST);
    ofDisableArbTex(); //needed for textures to work with gluSphere
	
    quadric = gluNewQuadric();
    gluQuadricTexture(quadric, GL_TRUE);
    gluQuadricNormals(quadric, GLU_SMOOTH);
	
    x=test.getWidth();
    y=test.getHeight();
    cout<<" long"<< x<< endl;
    cout<<" haut"<< y<<endl;
	
    video     = new unsigned char[x*y*3];
    videoTexture.allocate(x,y, GL_RGB);
}

//--------------------------------------------------------------
void testApp::update(){
	test.update();

}

//--------------------------------------------------------------
void testApp::draw(){
	ofTranslate(ofGetWidth()/2, ofGetHeight()/2, 0);
	if (test.isFrameNew()){
		int totalPixels = x*y*3;
		video = test.getPixels();
		videoTexture.loadData(video, x, y, GL_RGB);
	}
	cam.begin();
    videoTexture.bind();
    gluSphere(quadric, 200, 1000, 1000);
	
    videoTexture.unbind();
	cam.end();
}

Hors ligne

 

#3 2014-04-23 17:02:06 Re : texturer une sphère

caracteriel
membre
Date d'inscription: 2011-07-03
Messages: 129

Re: texturer une sphère



Je te remercie nononononono !
Finalement j'avais trouvé mon erreur !
Cela dit ta proposition me parait encore plus "optimiser"
Je vais tester smile

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2017