Salut

Voila j'ai un probleme pour lire une texture d'un fbo puis m'en servir dans un shader pour simplement la recopier dans un autre fbo.

Lorsque je visualise mon fbo nouvellement remplit il contient ça Nom : capture1.png
Affichages : 68
Taille : 10,9 Ko

au lieu de ça:
Nom : capture.png
Affichages : 88
Taille : 10,8 Ko

De plus lorsque l'objet ne touche pas un des quatre coin de la fenêtre il disparaît (dans le nouveau fbo) et lorsque qu'il touche les 4 il est de la couleur attendu.

voila le shader:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 varying vec2 texCoord;
void main() {
    texCoord = gl_MultiTexCoord0.st;
    gl_Position   = ftransform();
}
puis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 gl_FragData[0] = texture2D(diffuse_id,texCoord);
et la le code opengl:
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
18
19
20
21
22
23
 
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);                 
glUseProgram (_lighter->id());    
 
/*enchaîne Active,Enable,Bind     _gpuController->bind(_gbuffer->idTexture(0),GL_TEXTURE0,GL_TEXTURE_2D);        _gpuController->bind(_gbuffer->idTexture(1),GL_TEXTURE1,GL_TEXTURE_2D);    _gpuController->bind(_gbuffer->idTexture(2),GL_TEXTURE2,GL_TEXTURE_2D);
 
/*bind le fbo que je veux remplir*/
_gpuController->bind(_pbuffer);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        _pbuffer->setReadAndDrawBuffers(GL_NONE,GL_COLOR_ATTACHMENT0_EXT);    
_vbuffer->draw();
 
glActiveTexture(GL_TEXTURE2);
glDisable(GL_TEXTURE_2D);
glActiveTexture(GL_TEXTURE1);
glDisable(GL_TEXTURE_2D);
glActiveTexture(GL_TEXTURE0);
glDisable(GL_TEXTURE_2D);
glUseProgram(0);    
 
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
glMatrixMode (GL_MODELVIEW);
glLoadIdentity();
Voila si quelqu'un a une idée.
Dites moi si vous voulez plus de code(ex: passage de sampler...).
Merci.