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 :

Choix eclairage : conseil pour debutant


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut Choix eclairage : conseil pour debutant
    Bonsoir,

    J'apprend en ce moment OpenGL utilisé avec GLUT.
    Pour des raison scolaire, je souhaiterai m'eloigner le moins possible de ce "duo".

    Voici donc mon interrogation : Je sais qu'OpenGL propose de l'eclairage, j'ai lu plusieurs tutos dessus.
    Cependant je sais que le nombre de lumiere est au minimum 8 (et sur mon PC, maximum 16).
    Ce qui me tracasse est plutot simple, comment afficher plus de 16 source de lumiere ? Si par exemple je veux afficher les feux de voiture, des lampadaire, feux signalitique .. (environnement urbain).

    Je me suis donc renseigner, et il apparait qu'utiliser OpenGL pour les lumiere est un mauvais choix car, d'apres ce que j'aurai lu, gere mal les lumieres et est lent.
    Un mot qui et revenue souvent est le mot "shader". Ne disposant pas d'assez de temps, je n'ai pas pu approfondir la question, mais :

    * Existe t-il un moyen pour afficher plus de 16 source de lumiere ?
    * Le fameux "shader" permet-il ceci ?
    * Accessoirement, si le shader permet l'eclairage, serait-il possible d'avoir une explication basique et/ou lien/tutoriel ?


    Merci beaucoup de votre attention.

    Bonne soirée.

  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,

    Je trouve que vous avez de la chance de pouvoir avoir 16 sources de lumière dans une implementation "basique" d'OpenGL. J'ai toujours cru que c'était uniquement que 8. Enfin bref, cela dépend de l'implémentation ( soit du driver du constructeur de la carte 3D ).
    Ceci c'est pour le pipeline fixe d'OpenGL.

    Depuis OpenGL 2, les shaders sont arrivées \o/

    Les shaders permettent de remplacer dynamiquement le pipeline fixe ( en fait on refait ce que fait le pipeline fixe ). Mais comme nous sommes les programmeurs, nous pouvons faire ce que nous voulons, avec une grande liberté, directement sur le GPU ( ce qui veut dire que c'est rapide ). Ainsi, avec les shaders ( morceaux de code pour le GPU ) on peut reproduire les effets de lumières.
    Ici vous pouvez trouver une bonne base ( un tuto sur les shaders pour reproduire ce que fais le pipeline fixe ): http://www.lighthouse3d.com/opengl/glsl/ ( en anglais ).

    Je pense, que grace à un shader, on pourra facilement augmenter le nombre de lumières, même si cela me semble quelque peu lent ( mais mieux que le pipeline fixe ? ).
    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 éprouvé
    Avatar de Mikmacer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 116
    Par défaut
    Tu as plusieurs solutions.

    Traditionnellement, pour optimiser les lumières statiques, on les pré calculs dans des lightmap. Sinon, tu peux approximer des lumières d'auto, par exemple, avec des décals en mode additif.

    Autre solution, c'est d'utiliser les shaders pour pouvoir affecter les lumières aux seuls mesh qui en ont besoins, d'une manière qu'on appel de foward lighting.

    Et puis, ce qui devient de plus en plus populaire, c'est de calculer la lumière en image space, à l'aide de shaders, et de seulement calculer la lumière sur les pixels à l'écran ce qui a beaucoup d'avantages. Il faut habituellement une meilleur connaissance des API graphiques pour pouvoir faire ce genre de chose, mais il existe quelques tutoriels qui explique bien la technique. Cherche "Deferred Lighting" si ça t'intéresse

    Par contre, maintenant, si tu veux faire quelque chose de bien avec les API, il faut inévitablement passer par les shaders.

  4. #4
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut


    Comme je le pensais, il me manque beaucoup trop de chose sur le fonctionnement d'OpenGL.
    Je pense que je vais laisser tomber la gestion de lumiere pour l'instant : Je ne connais pas la notion de "pipeline fixe" et encore moins "dynamique",
    je ne sais pas exactement ce qu'est le GPU. Alors vouloir faire des shader ...


    Et le pompom c'est ici :

    Traditionnellement, pour optimiser les lumières statiques, on les pré calculs dans des lightmap. Sinon, tu peux approximer des lumières d'auto, par exemple, avec des décals en mode additif.

    Autre solution, c'est d'utiliser les shaders pour pouvoir affecter les lumières aux seuls mesh qui en ont besoins, d'une manière qu'on appel de foward lighting.

    Et puis, ce qui devient de plus en plus populaire, c'est de calculer la lumière en image space, à l'aide de shaders, et de seulement calculer la lumière sur les pixels à l'écran ce qui a beaucoup d'avantages.
    La, je suis completement paumé ^^
    J'apprecie votre aide, mais je pense qu'il va falloir que je creuse beaucoup plus precisement lorsque j'aurai du temps libre (et un cours...).

    Merci beaucoup pour toutes ces precision que je garde sous le coude.

    Bonne soirée

  5. #5
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    boarf, ce n'est pas si compliqué que ça de faire ses propres lumières

    http://mdeverdelhan.developpez.com/t.../dynamiclight/
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

Discussions similaires

  1. conseils pour debutant
    Par fallow80 dans le forum Débuter
    Réponses: 3
    Dernier message: 29/04/2008, 18h23
  2. Besoin de conseil pour debuter
    Par Gixxx dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 15/11/2006, 20h15
  3. [C#] Conseils pour débuter
    Par olive_le_malin dans le forum C#
    Réponses: 2
    Dernier message: 14/11/2006, 20h31
  4. Conseils pour debutants
    Par bubu92 dans le forum Débuter
    Réponses: 3
    Dernier message: 08/10/2006, 23h29
  5. Conseils pour débuter
    Par vallica dans le forum Flash
    Réponses: 13
    Dernier message: 16/06/2006, 08h21

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