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 
au lieu de ça:

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:
1 2 3 4 5
| varying vec2 texCoord;
void main() {
texCoord = gl_MultiTexCoord0.st;
gl_Position = ftransform();
} |
puis
gl_FragData[0] = texture2D(diffuse_id,texCoord);
et la le code opengl:
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.
Partager