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

SDL Discussion :

SDL2 - Textures - triangles


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    Mai 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Mai 2020
    Messages : 7
    Par défaut SDL2 - Textures - triangles
    Bonjour,

    Je me tourne vers vous de nouveau car je me trouve une nouvelle fois face à un problème que j'ai du mal à résoudre seul, et que vous m'aviez bien conseillé la première fois.

    Est-il possible d'afficher une texture en triangle ?

    Je précise ma question :

    De la même manière que l'on affiche une texture grâce a un SDL_Rect source vers un SDL_Rect destinataire, est-il possible d'afficher une texture à partir d'un triangle source vers un triangle destinataire ?

    D'après mes recherches, il n'y a pas de fonction native à la SDL2 pour cela, je cherche donc à coder une fonction de ce type. Mais je ne trouve pas de manière logique et efficiente pour faire cela.

    Pouvez-vous m'aider ?

    Cordialement
    Covinha

  2. #2
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Non , si tu veux faire ça ,il faut mieux utiliser OpenGL ou Vulkan

  3. #3
    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
    Citation Envoyé par cov_cells Voir le message
    Est-il possible d'afficher une texture en triangle ?
    oui il suffit de jouer sur un masque et une couleur transparente,en 2d
    Sinon on peut faire une opération pixel par pixel en donnant les sommets du triangle.

    Il me semble que Mr Kannagi pense plutôt à une primitive en 3d

  4. #4
    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
    Citation Envoyé par cov_cells Voir le message
    Bonjour,
    est-il possible d'afficher une texture à partir d'un triangle source vers un triangle destinataire ?
    Covinha
    Une texture triangulaire ça n'existe pas tout simplement. Ta texture est toujours rectangulaire hauteur fois largeur. Si j'ai bien compris, t'as une forme triangulaire dans une texture et tu veux l'afficher sur un triangle en 3D.
    Déjà, on est d'accord que ton triangle se trouve dans une texture carré et que le reste est d'une autre couleur ou même transparent.
    Renseigne toi sur les coordonnées UV.
    Les textures ont leur propres cordonnées en commençant en bas à gauche (u,v) = (0,0). Le coin en haut à droite (u,v) = (1,1).
    Ce qu'il faut faire consiste à trouver les bonnes coordonnées de ta texture, carrée, et à l'appliquer sur les vertices.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    Mai 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Mai 2020
    Messages : 7
    Par défaut
    Bonjour,

    Merci pour vos retours rapide.

    Je cherche à faire un Shadow Casting.
    J'ai caster mes rayons et obtenu tous les triangles pour avoir tout les éléments vus..

    Mais je me rend compte que je n'ai pas prévu qu il était impossible d'afficher des textures en triangles.

    du coup j'avais deja essayé de faire pixel par pixel, mais comme vous vous en doutez, ça tire trop sur le CPU, ou le GPU.. je ne sais pas..

    Avez vous des idées pour m'éclairer ?

    Cordialement
    Covinha

  6. #6
    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 c'est pas possible de faire une copie d'écran du problème ?
    Ensuite pour ce qui est de faire tourner du code sur le GPU il faut utiliser l'API Vulkan

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    Mai 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Mai 2020
    Messages : 7
    Par défaut
    Bonjour,

    voici deux screen shot.

    Sur le premier on peut voir que des rayons sont lancés du point noir (le personnage) vers les tuiles "?" ( qui représente des murs ), ce qui montre que ces tuiles sont dans le champ de vision,
    ( il faut un peut d'imagination, c'est censé être une vue de dessus, mais j'ai pris les tuiles de mario.. )

    Nom : screen.png
Affichages : 319
Taille : 51,2 Ko


    Sur le deuxième, les tuiles sont cachées par d'autres, on peut le voir grâce au fait que les rayons sont interrompu par de nouvelles tuiles.


    Nom : screen2.png
Affichages : 302
Taille : 54,7 Ko

    En assemblant tous ces rayons, je dispose d'un set de triangle qui me permettent savoir ce qui fait partie du champs de vision ou non.

    Nom : images.jpeg
Affichages : 305
Taille : 2,1 Ko

    Pour finir j''aimerai recouvrir l’écran d'une image qui pourrait représenter une source de lumière, pour donner un effet de vision.. En changeant le gamma du pixel en fonction de sa visibilité..
    Mais je me rend compte que remplir les triangles est plus compliqué que ce que je pensé. J'ai essayé de le faire pixel par pixel.. mais trop lord pour mon PC..

    Avez vous des idées ?

    Cordialement,
    Covinha

  8. #8
    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
    Citation Envoyé par cov_cells Voir le message
    Bonjour,


    Pour finir j''aimerai recouvrir l’écran d'une image qui pourrait représenter une source de lumière, pour donner un effet de vision.. En changeant le gamma du pixel en fonction de sa visibilité..
    Mais je me rend compte que remplir les triangles est plus compliqué que ce que je pensé. J'ai essayé de le faire pixel par pixel.. mais trop lord pour mon PC..
    Normalement les traitements pixel par pixel (fragments) se font sans aucun problème avec le fragment shader (ou pixel shader).
    Je te conseille de regarder cette vidéo de Javid (à partir 26:45) :

    Très instructive

Discussions similaires

  1. [Python 3.X] [OpenGL] Appliquer une texture sur deux triangles
    Par lilalex dans le forum 3D
    Réponses: 5
    Dernier message: 20/08/2019, 22h43
  2. [2D/3D] Triangle texturé en OpenGL sur un QGraphicsPixmapItem
    Par Sylvain255 dans le forum Qt
    Réponses: 0
    Dernier message: 04/02/2018, 15h35
  3. Réponses: 7
    Dernier message: 18/08/2008, 15h23
  4. Une texture sur plusieurs triangles
    Par mm2405 dans le forum OpenGL
    Réponses: 5
    Dernier message: 17/12/2007, 10h15
  5. Texturé un ensemble de triangle avec un ppm
    Par Darknicosh dans le forum OpenGL
    Réponses: 22
    Dernier message: 28/07/2005, 08h34

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