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 :

L'informatique c'est mystique! Supercherie graphique en Opengl + SFML


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de ABD-Z
    Homme Profil pro
    Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site
    Inscrit en
    Septembre 2016
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site

    Informations forums :
    Inscription : Septembre 2016
    Messages : 302
    Billets dans le blog
    3
    Par défaut L'informatique c'est mystique! Supercherie graphique en Opengl + SFML
    Alors voilà, je viens de vivre quelque chose que je ne pourrais jamais expliquer sans votre aide
    Je suis en train de faire du mix SFML Opengl. Jusqu'ici rien de choquant.
    Ma scène est toute simple, elle consiste de deux quads. Le premier étant un terrain immense qui a pour texture une RenderTexture de SFML (je bind avec un sf.Texture.bind). Et l'autre c'est un sprite 3D, un billboard qui a une animation sympas!
    Voici à quoi ressemble la scène (la plaque de bois c'est juste pour tester la profondeur de mon sprite) :
    Nom : screen.png
Affichages : 308
Taille : 16,5 Ko
    Pour afficher la texture correctement, j'ai du convertir les coordonnées de texture SFML (le coin en haut à gauche étant 0,0) en coordonnées de texture OpenGL (le coin en bas à gauche étant 0,0) : un petit changement était donc nécessaire pour les Y.

    Maintenant passons à la supercherie!
    Si je ne bind pas la texture du terrain, ou alors je fais un glBindTexture à la place, le résultat est tout à l'envers!
    Nom : screen2.png
Affichages : 281
Taille : 45,0 Ko
    L'animation du sprite est incorrect!
    Cependant, en prenant en compte les coordonnées de texture SFML, sans donc faire de conversions, l'animation redeviens correct, mais le sprite reste à l'envers (faudra du coup inverser les coordonnées de la texture en Y)!
    Nom : screen3.png
Affichages : 297
Taille : 44,7 Ko

    D'ailleurs j'ai une autre bizarrerie , si je veux tracer un cube ou un carré blanc sur le terrain, sur les deux dernières scènes, la couleur blanche s'affiche correctement, or sur la scène avec la texture verte bindé par SFML, le carré a la couleur verte de la texture du terrain!!!!

    Je n'arrive pas à voir la logique! Quelqu’un pourrait m'expliquer ces supercheries! C'est vraiment inexplicable

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 156
    Billets dans le blog
    4
    Par défaut
    Hello,
    SFML a des coordonnées de haut gauche vers le bas droit. OpenGL a des coordonnées de bas gauche vers haut droit. Il faut inverser l'axe Y dans ton shader.
    sf::Texture::bind a un second paramètre.

    Quand tu as fini d'utiliser la texture il faut réinitialiser le bind.
    https://www.sfml-dev.org/tutorials/2...th-opengl-code

    Enfin tu as fourni tellement de code que deviner ce qui va pas tient du miracle.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre chevronné
    Avatar de ABD-Z
    Homme Profil pro
    Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site
    Inscrit en
    Septembre 2016
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingé. webapps embarquées – Admin/mainteneur serveur/BDD – Formateur WordPress – Desiger : logo/site

    Informations forums :
    Inscription : Septembre 2016
    Messages : 302
    Billets dans le blog
    3
    Par défaut
    Eh bien si! Ta boule de cristal marche très bien!
    En fait, il fallait mettre sf.Texture.bind(null) après chaque utilisation ce que je ne faisais pas et donc provoquait des comportements inattendus.
    Merci!

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 156
    Billets dans le blog
    4
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Programmation informatique] C'est quoi votre rêve?
    Par webmatrix dans le forum La taverne du Club : Humour et divers
    Réponses: 56
    Dernier message: 02/01/2011, 21h01
  2. Réponses: 12
    Dernier message: 26/05/2010, 18h33
  3. Réponses: 5
    Dernier message: 05/03/2010, 13h18
  4. Changer l'apparence du curseur quand il est dessus un graphique
    Par nocolach dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 17/07/2008, 23h47
  5. Réponses: 15
    Dernier message: 15/01/2008, 19h11

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