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 :

OpenGL GLSL : Lumières


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 209
    Par défaut OpenGL GLSL : Lumières
    Bonjour à vous tous.

    Dans ma quête de l'apprentissage d'OpenGL, je suis tomber sur ce tutoriel.

    http://alexandre-laurent.developpez....L/?page=page_4

    Je voudrais savoir comment faire pour pouvoir gérer plusieurs lumières? Est ce possible? Ou est ce limité à une seule lampe?

    J'avais penser à faire comme ceci :
    On récupère les couleurs du matériaux etc : On calcul pour une lumière la couleur ambiante, diffuse, puis spéculaire.

    Puis on rajoute le calcul sur la seconde lumière en prenant le calcul sur la lumière ambiante, diffuse et spéculaire.

    Est ce une bonne idée?

    Mais dans ce cas? Comment faire pour la lumière ambiante par exemple?

    Merci

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 145
    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 145
    Billets dans le blog
    150
    Par défaut
    Bonjour,

    Dans le cas du calcul de lumière dans le pipeline fixe (modèle OpenGL 1.x), il suffit de faire une boucle sur toutes les lumières (qui été limités au nombre de 8, par défaut) et de calculer la couleur pour chaque lumière puis de l'accumuler (somme).

    Soit, en algorithme, cela donne :
    for toutes les lampes
    couleur += calculLumiere(lampe);
    (Et on peut rajouter un couleur /= nombre_de_lampe mais je ne sais pas si cela va donner un truc de bien )
    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 confirmé
    Inscrit en
    Mars 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 209
    Par défaut
    Salut, merci de m'avoir répondu.

    Je vais me servir des 2 réponses dont tu m'as cité, je vais refaire déjà un mode de lumière simple (par vertex), puis une imitation du pipeline fixe. Mais l’imitation n'est elle pas trop lente?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 145
    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 145
    Billets dans le blog
    150
    Par défaut
    Normalement non. Même s'il existe des techniques qui permettent d'afficher trop plein de lumière (basé sur le rendu différé (deferred shading))
    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.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 209
    Par défaut
    Je connais de nom, mais je n'ai pas encore le niveau je pense. J'y réfléchirais quand j'aurais finis ce que je souhaite faire .

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 31
    Par défaut
    D'un point de vue optique/physique je dirais que la lumière ambiante il n'y en a qu'une (car en réalité la lumière ambiante correspond à la diffusion dans toutes les directions de la lumière résultant en une lumière "globale, uniforme").

    La lumière ambiante provient de la lumière la plus forte en général. Par exemple sur terre, de jour, c'est le soleil qui va être capable d'éclairer le dessous de ton bureau.

    Et pour les deux autres (diffuse et spéculaire) tu additionne tout simplement.

Discussions similaires

  1. [OpenGL/GLSL] Utilisation Normal Map
    Par AuraHxC dans le forum OpenGL
    Réponses: 3
    Dernier message: 31/01/2010, 11h45
  2. [OpenGL/GLSL] Texture - Transparence non voulu
    Par AuraHxC dans le forum OpenGL
    Réponses: 19
    Dernier message: 25/01/2010, 16h42
  3. OpenGL/GLSL tout ce qui touche aux transformations
    Par AuraHxC dans le forum OpenGL
    Réponses: 13
    Dernier message: 15/12/2009, 14h55
  4. [GLSL] Lumière omni
    Par zenux dans le forum OpenGL
    Réponses: 2
    Dernier message: 10/08/2007, 13h51

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