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

  1. #1
    Candidat au 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
    Points : 3
    Points
    3
    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 éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    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 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Non , si tu veux faire ça ,il faut mieux utiliser OpenGL ou Vulkan

  3. #3
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    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 361
    Points : 20 381
    Points
    20 381
    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 éclairé
    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
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    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 : 263
    Points : 791
    Points
    791
    Billets dans le blog
    2
    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
    Candidat au 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
    Points : 3
    Points
    3
    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 éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    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 361
    Points : 20 381
    Points
    20 381
    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
    Candidat au 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
    Points : 3
    Points
    3
    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 : 237
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 : 241
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 : 237
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 éclairé
    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
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    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 : 263
    Points : 791
    Points
    791
    Billets dans le blog
    2
    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

  9. #9
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    À moins de développer sur gameboy, un ordinateur récent devrait être capable de faire une telle vérification pour chaque pixel.
    Tu fais ça pour chaque point, ou tous les points stratégiques. Tu crées la texture et tu l'envoie au shader.
    Ensuite tu trouves un moyen de faire ce check depuis le shader directement, en y envoyant les positions des bloqueurs. Et ton CPU aura une charge minimum.

    Pour dessiner juste un triangle, il me semble que sdl gfx le proposait ? Je sais pas si elle existe pour SDL2.
    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.

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