bon voila j'ai un peu de mal avec les changement de matrice et rotation et translation....
et c'est surement cet lacune qui fait que je ne comprend pas le fonctionnement de mon programme![]()
je fait tourner un triangle avec ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 void DrawGLScene() { glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); // Clear The Screen And The Depth Buffer glLoadIdentity(); // Reset The View glTranslatef(0.0f,0.0f,-6.0f); // Draw the pyramid in the middle of the screen glRotatef(rtri,0.0f,1.0f,0.0f); // Rotate The Pyramid On The Y axis glRotatef(rtri,1.0f,0.0f,0.0f); // Rotate The Pyramid On The x axis // draw a pyramid (in smooth coloring mode) glBegin(GL_POLYGON); .... rtri+=0.01f; glutSwapBuffers();
j'ai voulu faire faire un petit calcul pour commencer a mon GPU en utilisant un FBO a chaque fois que je presse la touche 'g' :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 void keyPressed(unsigned char key, int /*x*/, int /*y*/) { /* If escape is pressed, kill everything. */ if (key == ESCAPE) { /* shut down our window */ glutDestroyWindow(window); /* exit the program...normal termination. */ exit(0); } if (key == 'g') { initFBO(); performComputation(); } }
et la paf!!! mon triangle s'arrete de tourner!!!je sait que sa vien de mon initFBO qui suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 void initFBO(void) { // create FBO (off-screen framebuffer) glGenFramebuffersEXT(1, &fb); // bind offscreen framebuffer (that is, skip the window-specific render target) glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fb); // viewport for 1:1 pixel=texture mapping glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0, texSize, 0.0, texSize); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glViewport(0, 0, texSize, texSize); }
C'est des morceau de code que j'ai repris de mes recherche sur le net mais malheureusement, j'ai du mal a faire mes propre truc avec.....
Ce que je compren pas c que dans mon DrawGlscene(), g un loadidentity() avec un commentaire ("reset the view") donc ca devrai pas remettre a zero et pas tenir compte des truc que j'ai fait dans mon initFBO??
J'imagine que je doit faire un truc pour desactiver mon FBO?
Partager