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 :

Petite question de débutant sur les lumières


Sujet :

OpenGL

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut Petite question de débutant sur les lumières
    Bonjour, c'est ma première approche des lumière en opengl ( je commence par les bases )

    J'ai activé GL_LIGTHING et si je ne défini aucune lumière, ma scène est extremement sombre; suis-je obligé de faire un disable de tout ca pour avoir un affichage "normal" ?

    En réalité j'aurais pensé intuitivement qu'il m'aurais suffit de disable une lumière ( Gl_LIGTH0 par exemple ) pour avoir un affichage normal ( en admetant que je n'ai pas d'autre lumière)... en gros que l'activationde GL_LIGHTING ne fesait rien d'autre que d'activé la possibilité de gérer de lumière mais pas qu'il me plongeait dans le noir ..

    Je fais surement un fouin de pas grand chose... mais ... bon voila quoi ^^ ( ok j'ai pas d'excuse...)

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    suis-je obligé de faire un disable de tout ca pour avoir un affichage "normal" ?
    Si ce que tu appelles "un disable de tout ça" c'est un appel à glDisable(GL_LIGHTING), alors oui. Ca paraît logique que tout soit noir si tu actives l'éclairage et qu'aucune lampe n'éclaire tes objets, non ?

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    Bon bah opengl ne fonctionne pas comme mon intuition le voudrai ...tant pis

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Par contre tu peux définir un material avec une couleur ambiante ou emissive pour que ton objet ne soit pas noir lorsqu'il n'est pas éclairé.

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    Haaa voilà! Les maérial sont le prochain point que je doit abordé
    Donc je n'aurais plus qua mettre un mateiaux avec les bonnes propriété abiante / diffuse/ speuclar pour que meme en l'absense d elumière, il m'appairassent comme si javais desactivé Gl_LIGHTING, c'est ca?

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Disons que si tu actives l'éclairage alors oui, il vaut mieux que tes objets possèdent un material qui définissent leurs propriétés d'illumination. Mais si tu veux qu'un objet apparaisse éclairé sans pour autant avoir de lampe, alors il faut que tu désactives l'éclairage pour le rendu de cet objet, inutile de jouer avec les matériaux.

  7. #7
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    Salut, je voudrai juste préciser une chose qui me semble toute simple et logique à la fois :
    - désactiver l'éclairage avec glDisable(GL_LIGHTNING) revient à dire à OpenGL "ne tiens pas compte de la lumière"
    - si au contraire la lumière est activée, la visibilité de l'objet est affectée par la ou les lumières actives et les normales des sommets de l'objet
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  8. #8
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    Ok, j'ai bien noté la diférence, merci !

    Je veins de créer ma première lumière ... et en parcourant les tuto, je vois que la normal de mes quad a l'air detre necessaire ( chose dont je ne me uis encore jamais préocupé ). J'ai simplement orienté les face de mon cube pour satisfaire mes conditions de culling, est-ce suffisant pour le calcul de mes normal pour openg? Ou faut-il le spécifier soit même ?

    Je n'ai aps encore ativé les matériaux, mais les résultat de mon éclairage me paraissent étrange . ( Pour une lumière, a position définie ( non pas a linifini ), pres de mon cube, j'ai un eclairage a peine différent ( j'aurais pensé quavec une source aussi proche, certaine face serait beaucoup plus sombre qu'elles ne le sont dans mon prog ) selon les face de mon cubes ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	float lightDiffuse[] = {1.0f, 1.0f, 0.0f, 1.0f}; 
    	float lightSpecular[] = {1.0f, 1.0f, 0.0f, 1.0f};
     
        float lightAmbient[] = {0.3f, 0.3f, 0.0f, 0.3f};   
        float lightPosition[] = {5.0f, 3.0f, 3.0f, 1.0f};
    Sachant que mon cube se trouve en 1,1,2 .


    Edit : e doit emtre trompé quelquepart dans mes paramètre ... si je met mla lumière en (0,0,0,1), mon cube est tres tres foncé, a peine éclairé .

  9. #9
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    Citation Envoyé par Clad3 Voir le message
    J'ai simplement orienté les face de mon cube pour satisfaire mes conditions de culling, est-ce suffisant pour le calcul de mes normal pour openg? Ou faut-il le spécifier soit même ?
    Orienter les faces ne sert que pour le culling
    Les normales servent au calcul de l'exposition d'un vertex à la lumière
    donc si tu veux gérer l'écairage d'un objet, d'une manière ou d'une autre les normales sont obligatoires

    Citation Envoyé par Clad3 Voir le message
    Je n'ai aps encore ativé les matériaux, mais les résultat de mon éclairage me paraissent étrange . ( Pour une lumière, a position définie ( non pas a linifini ), pres de mon cube, j'ai un eclairage a peine différent ( j'aurais pensé quavec une source aussi proche, certaine face serait beaucoup plus sombre qu'elles ne le sont dans mon prog ) selon les face de mon cubes ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	float lightDiffuse[] = {1.0f, 1.0f, 0.0f, 1.0f}; 
    	float lightSpecular[] = {1.0f, 1.0f, 0.0f, 1.0f};
     
        float lightAmbient[] = {0.3f, 0.3f, 0.0f, 0.3f};   
        float lightPosition[] = {5.0f, 3.0f, 3.0f, 1.0f};
    Sachant que mon cube se trouve en 1,1,2 .


    Edit : e doit emtre trompé quelquepart dans mes paramètre ... si je met mla lumière en (0,0,0,1), mon cube est tres tres foncé, a peine éclairé .
    les 4 coordonnées de position sont x, y, z et w
    à ce que je vois tu touches à w
    et ce n'est pas une bonne idée (surtout si tu débutes)
    occupes toi de x, y et z et laisses w à 0.0f, certainement que tu y verras plus clair

    edit : tu dis que ton cube se trouve en 1,1,2
    mais il fait quelle taille ?
    ta lumière ne se trouverait-elle pas à l'intérieur ?
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  10. #10
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    Avec ceci en position :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     GLfloat lightPosition[4] = {0.0f, 0.0f, 1.0f, 0.0f};
    J'ai un cube éclairé uniformément ... si j'ai bien comprit mes paramètres, il ne devrai être éclairé que sur une face, non? ( si je met -1 et non pas 1, il n'est pas éclairé du tout ) .

  11. #11
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    est-ce que l'éclairage est actif ? -> glEnable(GL_LIGHTNING)
    est-ce que tu as activé une lumière ? glEnable(GL_LIGHT0) par exemple
    et pas plusieurs ?
    quelle taille fait ton cube, à voir si la lumière n'est pas à l'intérieur
    tu peux aussi dessiner tes normales à l'aide de GL_LINES pour vérifier qu'elles sont bien orientées
    est qu'il y a une animation genre le cube tourne sur lui-même ? auquel cas est-ce que l'éclairage évolue en toute logique dessus ?

    avec les informations que tu donnes, on ne peux pas voir si ce que tu as fait est bon ou s'il y a des "erreurs"
    tu pourrais éventuellement poster au moins une partie du code d'affichage

    pour revenir à ce que je disais au sujet du paramètre w de la position de la lumière, en le mettant à 0.0f comme je te l'ai dit en fait ça te donne une lumière directionnelle
    si tu veux une lumière ponctuelle, tu dois effectivement l'avoir à 1.0f
    désolé pour l'erreur

    d'ailleurs si tu veux placerune lumière ponstuelle, tu peux aussi la rendre visible avec un un affichage en GL_POINTS
    ça te simplifiera peut-etre la vie de la visualiser par rapport à ton objet
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  12. #12
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    Je n'ai toujours pas définit de normal...je crois que je vais commencer par la !

    EDIT: Ca va tout de suite mieux avec des normals ... Maintenant reste a voir comment on va calculer tout ca joliement :p

  13. #13
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    ok cool pour les normales, c'est par là qu'il faut commencer
    n'hésites pas à afficher la position de ta lumière d'une manière ou d'une autre
    ça aide
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. question de débutant sur les threads
    Par Virgile le chat dans le forum Concurrence et multi-thread
    Réponses: 8
    Dernier message: 27/06/2007, 17h10
  2. [C#] question de débutant sur les threads?
    Par Jayceblaster dans le forum C#
    Réponses: 6
    Dernier message: 27/11/2006, 10h52
  3. Réponses: 15
    Dernier message: 15/10/2006, 16h52
  4. question de débutant sur les jointures
    Par dreamcocktail dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/03/2006, 15h24
  5. question de débutant sur les objets
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 06/08/2004, 10h51

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