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 :

Les techniques d'ombrage


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 53
    Par défaut Les techniques d'ombrage
    Bonjour,

    Je suis entrain de développer un moteur 3d opengl, tout est beau tout fonctionne le monde est supra luminescent et tout ça tout ça. Seul problème : Il n'y a pas d'ombre ; et avec les beaux jours qui reviennent ça va vite devenir invivable.
    Je sais que c'est un domaine vaste et complexe... et j'ai peur de me plonger dans une technique pour me rendre compte au final qu'elle est complètement dépassée.
    Donc pour résumer : je recherche une technique de calcul des ombres en temps réel utilisant les shaders pas troptrop compliquée (mais quand même un, faut que ça marche ! Je suis prêt à en suer un minimum). Si vous avez ça dans vos cartons je suis preneur

    Merci d'avance

    ++
    Charlie

  2. #2
    Membre éprouvé 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 : 39
    Localisation : France

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

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


    La sous la main dsl, j'ai pas de carton.

    Mais je peux te donner quant même quelques pistes de recherche.

    Avec utilisation de shader, regarde du côté de ce que l'on appelle le shadow mapping ( qui te permet de dessiner des ombres sans connaissance à priori sur la géométrie de des objets si tu ne l'avais pas prévu au départ ).
    En quelque ligne. Tu dessines ta scène du point de vue de la lumière, tu enregistres la carte de profondeur obtenue dans une texture (par fbo ou autre). Tu redessines ta scène du point de vue de la caméra et après à l'aide d'un shader (ou d'extension) tu calcules les zones ombrées à l'aide de la texture préalablement sauvegardée.

    C'est une méthode plus que courante pour générer des ombres, il y a plein de doc sur le net.

    Si non il y a aussi les shadow volumes je sais pas si ca s'utilise avec les shaders ( bien que pour adoucir les ombres ) cependant cette méthode te demande de connaître à priori des informations géométriques sur tes objets de la scène qui te permet de calculer le "volume d'ombre" d'un objet et ainsi de déterminer les zones d'ombre.
    Plein de doc sur le net aussi.

    Il existe d'autre méthode, mais bon les deux citées sont les plus courantes.

  3. #3
    Membre très actif Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Par défaut
    Shadow mapping, et si tu veux plus de qualité parallel split shadow map. Les shadow volumes par contre il me semble que c'est très très lourd.

  4. #4
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 540
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 540
    Par défaut
    Salut Charlie111
    regardes donc un peu cela
    http://www.codesampler.com/oglsrc/og...shadow_mapping

    Regardes aussi peut-être du coté des tutos de Nehe

  5. #5
    Membre éprouvé 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 : 39
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 158
    Par défaut
    Le choix de la méthode dépend encore et une fois de plus de l'utilisation que l'on veut en faire.

    Les shadows volumes demande de connaître la géométrie des objets, donc oui si mal implémenté cela peut s'avère lourd en calcul d'autant plus que sa complexité augmente avec le nombre de faces des objets, et le nombre lui même d'objets dans la scène. Néanmoins il donne des ombres exactes mathématiquement des objets, en l'occurrence ce qu'on appelle des ombres dures. Et une bonne partie des calcules peut se faire durant le pré-chargement de la scène. La géométrie des objets ne change pas (objet solide) pour une majorité des acteurs d'une scène, donc pas besoin de la calculer à chaque fois. Par exemple, pour des endroits fermés à champs de vue réduit cette méthode est souvent efficace par le nombre d'objets limités.
    Un des soucis des shadow volumes c'est qu'ils fonctionnent qu'à partir de la géométrie réelle de l'objet donc pour tout ce qui est grillages, feuillages générés par texture semi transparente, la technique de shadow volume est inefficace.

    Je ne sais pas si tu es un gamer à tes temps perdus, mais par exemple doom3 utilise les shadow volumes qui s'y prête bien (couloir, pièce, zone restreinte...).

    Sinon, concernant le shadow mapping il n'y a aucune connaissance nécessaire sur les objets de ta scène et cela marche donc aussi avec les texture semi transparente (grillage, feuillage...). Cependant comme tu te sers d'une texture intermédiaire (texture du point de vue de la lumière) il peut apparaître des artefacts sur les contours des ombres par un manque de résolution de ta texture (bien qu'il est existe des méthodes permettant de minimiser ces artefacts). Et cette méthode à quand même l'avantage d'être moins compliquée à mettre en place vu que la majorité du travail est effectué directement par la carte graphique, ou contrairement au shadow volume, il est souvent nécessaire au programmeur d'effectuer des prés-calculs sur la géométrie de l'objet qui peut s'avérer un gouffre à frame rate si mal implémentés.

    Mais sinon les deux sont viables.

    Enfin si j'ai bien compris tu as déjà une bonne partie de ton moteur qui est codé donc je te conseille de te tourner vers la technique de shadow mapping n'ayant pas forcement pris auparavant la peine de t'embêter avec une description géométrique de tes objets facilitant l'utilisation des shadow volumes.

  6. #6
    Membre très actif Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Par défaut
    Justement les Parallel Split Shadow Maps permettent d'éviter une bonne partie de ces artefacts même si ce n'est toujours pas parfait.

  7. #7
    Membre Expert

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Par défaut
    Ce qui est encore beaucoup utilisé est le précalcul de l'éclairage dans les textures. Ça permet d'utiliser un moteur d'éclairage plus avancé en offline et avoir une performance très bonne. (Mirror's edge est un bon exemple de ce genre d'utilisation).

    Après tu peux rajouter des ombres dynamiques sur les objets qui bougent et/où pour les sources de lumière qui bougent.

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/12/2007, 23h43
  2. Réponses: 3
    Dernier message: 10/07/2007, 10h21
  3. Cherche des infos sur les techniques de Trigger
    Par walid0577 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 20/04/2007, 17h22
  4. Réponses: 4
    Dernier message: 02/04/2006, 15h43
  5. LES TECHNIQUES DES SGBDR / MySQL rapide ???
    Par SQLpro dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/09/2003, 11h16

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