Je reçois une erreur GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
après avoir essayé de créer un framebuffer qui restitue une texture. Je ne peux pas comprendre ce qui ne va pas, toute aide est grandement appréciée.GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT en essayant d'attacher la texture
Édition: Corrigé! Code de travail:
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 768, 1024, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
glBindTexture(GL_TEXTURE_2D, 0);
glGenRenderbuffers(1, &rboID);
glBindRenderbuffer(GL_RENDERBUFFER, rboID);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, 768, 1024);
glBindRenderbuffer(GL_RENDERBUFFER, 0);
glGenFramebuffers(1, &backFramebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, backFramebuffer);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, rboID);
[self checkFramebufferStatus];
glBindFramebuffer(GL_FRAMEBUFFER, 0);
Remarque: Si votre version ne fonctionne pas, assurez-vous de vérifier les erreurs après chaque appel et que vous effacez l'erreur avant votre premier appel, sinon vous serez vérification d'erreur le code avant cela.
Je comparais mon code à cet extrait pour essayer de trouver une erreur. Pour Android OpenGL ES 2.0, la capture pour moi était GL_DEPTH_COMPONENT vs GL_DEPTH_COMPONENT16. Dans glRenderBufferStorage, assurez-vous que le composant de profondeur est GL_DEPTH_COMPONENT16. Difficile à attraper car chaque ligne de code était identique à votre extrait. – Halsafar
Vous devriez également laisser le mauvais code, de sorte que les gens qui le lisent après le fait peuvent voir la solution. Ou au moins expliquer ce que vous avez vérifié. Peu importe, merci de montrer le code fixe. – Arelius
@Halsafar Oui, c'est une erreur assez commune. C'est une bonne chose que vous l'ayez noté. Cependant, si vous avez vérifié la présence d'erreurs, vous remarquerez cette erreur beaucoup plus rapidement, d'où mon dernier commentaire "vérifier l'erreur après chaque appel". – Nick