IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Framebuffer Object (FBO) supporté à moitié ?


Sujet :

OpenGL

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 396
    Par défaut Framebuffer Object (FBO) supporté à moitié ?
    Bonjour,

    J'aimerai utiliser les FBO et voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, bufferID[0]);
    glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, bufferID[1]);
     
    glBindTexture(GL_TEXTURE_2D, bufferID[2]);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8,  width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
    glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, bufferID[2], 0);
     
    glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, width, height);
    glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, bufferID[1]);
     
    GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
    if(status==GL_FRAMEBUFFER_UNSUPPORTED_EXT){
        std::cout<<"Framebuffer object unsupported."<<std::endl;
    }
    Ce code me dit que les FBO ne sont pas supporté. Est-ce vrai ? J'ai une Nvidia 7600 Go.
    Cette erreur apparait uniquement quand j'utilise 'glFramebufferTexture2DEXT'.

    Comment vérifier avec Glew si les FBO sont supportés ? J'ai tenté ceci:
    if (GLEW_EXT_framebuffer_object){/*Supporté*/} mais ça ne semble pas suffisant parce que dans ce cas, il me dit qu'ils sont supporté !

    Merci d'avance.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 069
    Billets dans le blog
    143
    Par défaut
    Bonjour,

    Je pense que le problème est ( entre autre ) que GLEW va regarder pour les extensions, et non votre implémentation.

    Si GLEW vous retourne que ça marcherai avec l'extension, je vous conseille de tout faire avec GLEW.

    Sinon, il faut regarder la version d'OpenGL ( glGetString(GL_VERSION) ou un truc du genre), si celle ci est en dessous de 2.0, bah y a pas encore les FBO.

    Mais je dirai, qu'en aucun cas, le glCheckFramebufferStatusEXT teste si les FBOs sont disponible, mais je n'en sais pas grand chose.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 396
    Par défaut
    Bonjour,

    Merci pour la réponse.
    Apparement, glCheckFramebufferStatusEXT semble vérifié si le FBO est bien construit.

    J'ai trouvé la solution à mon problème en regardant quelques forums. Il 'suffisais' d'ajouter ces lignes de codes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
    Par contre, je trouve assez étrange que ces lignes permettent d'avoir un FBO valide. Quelqu'un à une explication ?

    Merci d'avance.

Discussions similaires

  1. [OpenGL] Framebuffer object FBO
    Par victor_gasgas dans le forum OpenGL
    Réponses: 5
    Dernier message: 08/12/2010, 22h09
  2. framebuffer object : fonctionne pas
    Par casafa dans le forum OpenGL
    Réponses: 6
    Dernier message: 31/07/2007, 17h18
  3. Performance du frame buffer object (FBO)
    Par Grosbenji dans le forum OpenGL
    Réponses: 4
    Dernier message: 24/01/2007, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo