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 :

GL_LIGHTING ne fonctionne pas en compilation RELEASE (mais fonctionne en DEBUG)


Sujet :

OpenGL

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 18
    Points : 7
    Points
    7
    Par défaut GL_LIGHTING ne fonctionne pas en compilation RELEASE (mais fonctionne en DEBUG)
    Salut,

    un programme opengl tout simple :
    une sphere, une lumière, un matériau.

    Tout se passe parfaitement en DEBUG.
    Mais quand je compile en RELEASE, il n'y pas pas de couleur diffuse, mais l'ambiante est bien là ?????

    Quelqu'un à une idée ? problème de driver ?

    MErci.

    -- pium

  2. #2
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Points : 486
    Points
    486
    Par défaut
    Bonjour,

    ca m'étonnerait que ca soit lié aux drivers... par contre, une grosse différence entre les modes DEBUG et RELEASE, c'est qu'en DEBUG toutes les variables sont initialisées par défaut, même si vous avez oublié de le faire dans votre code.

    Du coup vérifiez bien que vous initialisez tout explicitement, en particulier les paramètres des lumières...

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    ah intéressant, je ne savais pas ça !

    J'ai pourtant l'impression de tout initialiser, mais peut etre que j'oublie quelque chose ?

    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
     
        glEnable(GL_LIGHT0);
     
        // Create light components
        GLfloat ambientLight[] = { 0.2f, 0.2f, 0.2f, 1.0f };
        GLfloat diffuseLight[] = { 0.8f, 0.8f, 0.8, 1.0f };
        GLfloat specularLight[] = { 0.5f, 0.5f, 0.5f, 1.0f };
        GLfloat position[] = { 10.0f, 0.0f, 0.5f };
     
        // Assign created components to GL_LIGHT0
        glLightfv(GL_LIGHT0, GL_AMBIENT, ambientLight);
        glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuseLight);
        glLightfv(GL_LIGHT0, GL_SPECULAR, specularLight);
        glLightfv(GL_LIGHT0, GL_POSITION, position);
     
            glEnable(GL_LIGHTING);
     	GLfloat mcolor[] = { 1.0f, 0.0f, 0.0f, 0.9f };
            glMaterialfv(GL_FRONT, GL_AMBIENT, mcolor);
            glMaterialfv(GL_FRONT, GL_DIFFUSE, mcolor);

  4. #4
    Membre actif Avatar de Robxley
    Homme Profil pro
    Docteur ingénieur traitement d'image
    Inscrit en
    Mai 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Docteur ingénieur traitement d'image

    Informations forums :
    Inscription : Mai 2009
    Messages : 158
    Points : 228
    Points
    228
    Par défaut
    Salut,

    A la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     glLightfv(GL_LIGHT0, GL_POSITION, position);
    tu passes un tableau de seulement 3 coordonnées:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GLfloat position[] = { 10.0f, 0.0f, 0.5f };
    Or il faut tout de même 4 coordonnées pour GL_POSITION.
    La 4ème coordonnées correspondant à 1 ou 0, et permet de définir si la lumière et de type positionnel (valeur 1) ou directionnel (valeur 0) (ou inversement faut regarder la doc )

    Donc je pense que ton problème vient de là, car comme tu explique la couleur ambiante est bien présente, normal cela marche quelque soit le type de lumière ( positionnel ou directionnel), par contre la couleur diffuse elle va dépendre du type de lumière que tu as.

    Essaie de voir en rajoutant une 4eme coordonnée de valeur 1 ou 0 en fonction de ce que tu veux faire.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Alors là chapeau pour voir ce détail !

    En effet tout fonctionne maintenant.

    Merci beaucoup, j'aurais pu galérer longtemps

  6. #6
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Points : 486
    Points
    486
    Par défaut
    Bien joué Robxley!

  7. #7
    Membre actif Avatar de Robxley
    Homme Profil pro
    Docteur ingénieur traitement d'image
    Inscrit en
    Mai 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Docteur ingénieur traitement d'image

    Informations forums :
    Inscription : Mai 2009
    Messages : 158
    Points : 228
    Points
    228
    Par défaut
    C'est que j'ai dû tomber dans le même piège à mes débuts, et m'arracher les cheveux pendant des erreurs avant de voir le truc. Et puis ca fessait pas symétrique, c'était pas beau

Discussions similaires

  1. [XL-2003] Macro qui ne Fonctionne PAS sur Excel 2003 mais Fonctionne sur Excel 2010
    Par CedResma34 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 17/01/2014, 10h05
  2. Liens ne fonctionnent pas avec monsite.com mais avec www.monsite.com
    Par mickey83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 24/04/2010, 10h06
  3. Réponses: 1
    Dernier message: 04/11/2009, 15h33
  4. fichier shell qui ne fonctionne pas avec le cron mais fonctionne dans le shell
    Par diabli73 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 20/10/2008, 19h12
  5. Ma version release ne fonctionne pas
    Par totof42 dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/11/2003, 13h15

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