Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: lumiere et multitexturing  (Lu 3978 fois)

0 Membres et 1 Invité sur ce sujet

thoced

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
lumiere et multitexturing
« le: Décembre 30, 2014, 03:57:30 pm »
Bonjour à toutes et à tous.

Je tente d appliquer par shader une texture comprenant un dégradé de lumiere afin de simuler dans ma scene principale un effet de lampe de poche.

Je passe donc a mon shader la texture de ma scene dessiner dans un rendertexture.

Comment dans le fragment shader pourrais je ensuite obtenir les bonnes coordonnées de la texture de ma scene afin de récupérer le bon pixel a melanger avec celui de la texture de la lampe ?

Est il possible d'utiliser le multitexturing et donc inscrire dans les vertex de mon sprite, 2 niveaux de coordonnées de textures ?

Merci d avance




Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : lumiere et multitexturing
« Réponse #1 le: Décembre 30, 2014, 04:02:06 pm »
Utiliser une seconde paire de coordonnées de texture n'est pas possible avec SFML. Mais as-tu réellement besoin de passer par un shader ? Habituellement on dessine simplement la texture de lumière par dessus la scène avec un blending multiplicatif.
Laurent Gomila - SFML developer

thoced

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
Re : lumiere et multitexturing
« Réponse #2 le: Décembre 30, 2014, 04:34:44 pm »
Oui cela fonctionne bien mais j en avais besoin afin notamment de pouvoir jouer sur l intensité de la lumiere ou de modifier la couleur sur certain pixel en fonction de ce qui est éclairé dans ma scene principale.

De plus, cela  m'aurai fait un bon exercice.

Rhoced

 

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : lumiere et multitexturing
« Réponse #3 le: Décembre 30, 2014, 04:41:31 pm »
Ok, pas de problème ;)

Donc si j'ai bien compris, tu dessines un sprite contenant la texture de la lampe, avec un shader auquel tu as passé la texture de la scène, c'est ça ? La texture de la lampe a une position et des dimensions quelconques, ou bien elle fait la même taille que la texture de la scène ?
Laurent Gomila - SFML developer

thoced

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
Re : lumiere et multitexturing
« Réponse #4 le: Décembre 30, 2014, 05:43:31 pm »
La texture de la lampe a des dimensions quelconques, différentes de celle de la scène principale.  Le Sprite contenant la texture de la lampe va également bouger dans la scène.

merci

THOCED

thoced

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
Re : lumiere et multitexturing
« Réponse #5 le: Décembre 30, 2014, 08:10:10 pm »
J'ai trouvé une solution intermédiaire.

1er, je dessine dans un RenderTexture ma scene principale

2eme, je dessine dans un second RenderTexture ayant les même dimensions que ma première RenderTexture, ma lumière à l'endroit souhaité.

3eme, je dessine dans un troisieme RenderTexture ma scene complete en passant en paramètre dans le Fragment Shader la Texture du Second RenderTexture contenant ma lumière. Dans le Fragment Shader je fusionne les pixels qui m'intèressent.

Mais bon si il y a d'autres méthodes, je suis preneur...

THOCED




Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : lumiere et multitexturing
« Réponse #6 le: Décembre 30, 2014, 09:47:56 pm »
En théorie tu peux retrouver les coordonnées de texture que tu cherches en passant la position et taille de ta texture de lumière au shader, puis en extrapolant à partir des coordonnées de texture. Après il faut faire un petit dessin pour trouver la bonne formule qui relie tout ça.
Laurent Gomila - SFML developer

thoced

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
Re : lumiere et multitexturing
« Réponse #7 le: Décembre 30, 2014, 09:53:22 pm »
Merci pour la réponse,

Petite question supplémentaire, certainement déjà posée plusieurs fois, mais pourquoi la librairie SFML ne permet pas de passer plusieurs niveaux de coordonnées de texture ?

Merci

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : lumiere et multitexturing
« Réponse #8 le: Décembre 30, 2014, 10:14:21 pm »
Dans ce cas combien devrait-on en mettre ? Si on en met 2, les gens en voudront 3. Si on en met 3, les gens en voudront 4. Si on en met 4, les gens qui pour la plupart n'en utilisent qu'un, demanderont à quoi servent les 3 autres. Il n'y a pas de "bon" chiffre.

Du coup pour rester simple, SFML ne définit que ce dont elle a besoin, à savoir une seule paire de coordonnées de texture.
Laurent Gomila - SFML developer