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

Physique Discussion :

Gestion des lumières en 2D


Sujet :

Physique

  1. #21
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 112
    Points : 45
    Points
    45
    Par défaut
    Ca m'a l'air intéressant ca, comment est-ce qu'on module une composante avec une texture (un nom de fonction pour démarrer?)? Si on peut mettre une texture qui dépasse du quad (mais ne s'applique que sur lui), ca pourrait régler pas mal de problèmes...

  2. #22
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Points : 413
    Points
    413
    Par défaut
    tu charges ta texture en nivau de gris en mode GL_ALPHA et tu utilises le mode de blending des texture GL_MODULATE lors du rendu (c'est le mode par défaut).

    Quand tu es en mode GL_MODULATE, ca signifie que la couleur de la texture est multiplié par la couleur du quad pour donner la couleur finale du pixel (avant blending)

    Si ta texture est en mode GL_ALPHA tu va avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (rf,gf,bf,af) = (rq,gq,bq,aq * at)
    avec les f les composantantes finales, q les composantes initiales du quad et t les composantes de la texture.

    Donc tu mets la couleur avec alpha que tu veux a la lumière et tu la modules avec une texture en niveau de gris avec blanc pour 1 et noir pour 0 (et toutes les nuances entre)

    Quand a la texture qui "dépasse du quad mais ne s'applique que sur lui", c'est le principe des coordonnées de texture, nan ?
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  3. #23
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 112
    Points : 45
    Points
    45
    Par défaut
    OK donc il faut que je calcule les coordonnées de la texture auxquelles doivent correspondre les extrémités du quad? Ca me plait.
    Quelqu'un a un dégradé concentrique en niveau de gris et bonne résolution sous la main? Sinon je vais en faire un.

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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    * 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

  5. #25
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Points : 413
    Points
    413
    Par défaut
    mais pour gérer un rayon de lumière (et non un spot) ce n'est pas plutot d'un dégradé linéaire dont tu as besoin ?
    Images attachées Images attachées  
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  6. #26
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 112
    Points : 45
    Points
    45
    Par défaut
    Pour que l'intensité soit plus forte au milieu du rayon tu veux dire? Ben dans ce cas est-ce que c'est possible de moduler par plusieurs textures?

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 112
    Points : 45
    Points
    45
    Par défaut
    Merci beaucoup à tous, je commence à entrevoir la lumière (c'est le cas de le dire).

    Pour resynchroniser le sujet avec mes idées, je compte donc représenter mes rayons avec des polygones modulés par deux textures, une qui effectue l'atténuation quand on s'éloigne du centre (le rond), et une qui représente l'atténuation qd l'angle s'éloigne de l'angle d'orientation du rayon (ça fait un triangle).

    Maintenant le problème vient des effets des filtres de couleurs.
    Une grande interrogation donc : est-ce qu'il est possible de dessiner un polygône, le moduler par un autre avec blending multiplicatif(pour appliquer le filtre sur la partie concernée), par un autre etc... puis effacer tout ça, refaire la même chose avec un autre rayon, d'autres polygônes mais sur fond vierge... Et à la fin, réafficher tous ces rayons avec un blending additif (je suis pas sûr de mes mots).

    Le but est qu'un polygône qui servirait à appliquer le filtre sur la partie d'un rayon qui est passé par un filtre, ne vienne pas moduler aussi des rayons qui se trouvaient déjà dessinés en dessous et qui n'ont rien à faire de ce filtre.
    J'espère que je suis assez clair.

    1) Est-ce qu'on peut effacer des figures dessinées pour les redessiner plus tard?
    2) Sinon est-ce qu'on peut appliquer le blending à seulement une ou plusieurs figures et pas tout ce qu'il y a en dessous?

  8. #28
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 112
    Points : 45
    Points
    45
    Par défaut
    Bon, je pense que ce que je demande n'est pas possible, donc j'ai pensé à une autre solution : dessiner les polygônes qui doivent se blender en multiplicatif, faire une capture d'écran, effacer tout, refaire... et afficher toutes les captures à la fin avec un blending additif.
    C'est correct comme idée?

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/06/2013, 00h55
  2. Réponses: 4
    Dernier message: 04/07/2002, 12h31
  3. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

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