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 :

Fonctions OpenGL des FBO "not declared"


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 97
    Par défaut Fonctions OpenGL des FBO "not declared"
    Bonjour en essayant de travailler avec les FBO pour faire du shadow mapping, j'obtiens cette erreur suivante :

    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
    G:\Projets\Human Conquests\Human Conquests\src\shadow_map_fbo.cpp||In destructor 'ShadowMapFBO::~ShadowMapFBO()':|
    G:\Projets\Human Conquests\Human Conquests\src\shadow_map_fbo.cpp|34|error: 'glDeleteFramebuffers' was not declared in this scope|
    G:\Projets\Human Conquests\Human Conquests\src\shadow_map_fbo.cpp||In member function 'bool ShadowMapFBO::Init(unsigned int, unsigned int)':|
    G:\Projets\Human Conquests\Human Conquests\src\shadow_map_fbo.cpp|45|error: 'glGenFramebuffers' was not declared in this scope|
    G:\Projets\Human Conquests\Human Conquests\src\shadow_map_fbo.cpp|56|error: 'GL_DRAW_FRAMEBUFFER' was not declared in this scope|
    G:\Projets\Human Conquests\Human Conquests\src\shadow_map_fbo.cpp|56|error: 'glBindFramebuffer' was not declared in this scope|
    G:\Projets\Human Conquests\Human Conquests\src\shadow_map_fbo.cpp|57|error: 'GL_DEPTH_ATTACHMENT' was not declared in this scope|
    G:\Projets\Human Conquests\Human Conquests\src\shadow_map_fbo.cpp|57|error: 'glFramebufferTexture2D' was not declared in this scope|
    G:\Projets\Human Conquests\Human Conquests\src\shadow_map_fbo.cpp|62|error: 'GL_FRAMEBUFFER' was not declared in this scope|
    G:\Projets\Human Conquests\Human Conquests\src\shadow_map_fbo.cpp|62|error: 'glCheckFramebufferStatus' was not declared in this scope|
    G:\Projets\Human Conquests\Human Conquests\src\shadow_map_fbo.cpp|64|error: 'GL_FRAMEBUFFER_COMPLETE' was not declared in this scope|
    G:\Projets\Human Conquests\Human Conquests\src\shadow_map_fbo.cpp||In member function 'void ShadowMapFBO::BindForWriting()':|
    G:\Projets\Human Conquests\Human Conquests\src\shadow_map_fbo.cpp|75|error: 'GL_DRAW_FRAMEBUFFER' was not declared in this scope|
    G:\Projets\Human Conquests\Human Conquests\src\shadow_map_fbo.cpp|75|error: 'glBindFramebuffer' was not declared in this scope|
    ||=== Build finished: 11 errors, 0 warnings ===|

    Sachant que mon code fonctionne très bien pour la 3D avec OPENGL et que je commence à peine avec les FBO puis seulement après je passerai au shaders, je me demande si je n'ai pas une erreur de version de OpenGL.

    J'espère que mes indications vous seront claires.

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 618
    Par défaut
    Salut,

    Tu utilise Glew (ou autre), ou tu te base sur les header fournis par microsoft ?
    Les header de grosoft n'ont pas bougé depuis OpenGL 1.1 (ou 1.2, je sais plus). Bref, pas de shader, pas de FBO, pas de VBO, rien quoi...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 97
    Par défaut
    Il me semble que c'est GLee que j'utilise. Je savais qu'il y a une différence entre glew et GLee mais qu'elles sont-elles réellement ?

    En tout cas merci de la réponse.

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 618
    Par défaut
    Je ne connais pas trop Glee, mais je dirais que c'est à peu près la même chose que Glew.
    Tu inclues bien uniquement Glee.h, et pas GL.h ?
    Lorsque tu ouvres Glee.h, est-ce que tu trouve bien les fonction glGenFramebuffers, etc... ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 97
    Par défaut
    Je regarde ce soir pour ça. Mais il me semble que j'ai gl.h et glee.h avec la petite restriction que l'un doit être ouvert avant l'autre.

    Je donnerai plus de détail ce soir!
    Encore merci !

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    Bonsoir,

    si Glee fonctionne comme Glew (ce dont je ne doute pas ), il faut inclure glee.h uniquement, gl.h ne sert à rien dans l'absolu, il l'inclut lui-même.
    Ensuite, il faut l'initialiser, avec des paramètres pour indiquer quelle version de GL on utilise.

    Les fonctions gl3 sont en fait des pointeurs sur fonctions et macros qui sont définis à l'initialisation de Glee/Glew, selon les paramètres souhaitées.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/05/2008, 13h54

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