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 :

pb texture mapping 2D


Sujet :

OpenGL

  1. #21
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 208
    Points : 109
    Points
    109
    Par défaut
    Pour moi c'est simple : c'est pas possible.

    Tes coordonnées de texture restent les même, pour une géométrie différente => le résultat sera toujours déformé.
    Un rendu 3D ça marche pas comme ça.
    Ta géométrie ne change pas, c'est le passage par les différentes Matrices de transformation qui vont te donner cet effet de profondeur.

    Pour t'en rendre compte c'est facile : test avec un logiciel 3D.
    Max / Maya / Blender.
    Le principe est le même, on est pas sur Toshop, si tu rapproches deux sommets, tes deux géométries (triangles) vont changer, pour une texture inchangée, d'où la déformation.

  2. #22
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 479
    Points
    11 479
    Billets dans le blog
    11
    Par défaut
    Je n'ai pas testé, mais je pense que si tu ajoutes un point de contrôle à UV variable au centre de ta face (implique donc de découper ton quad en 4 triangles), tu devrais arriver au résultat que tu veux obtenir, en modifiant l'UV de ce point additionnel.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #23
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    @themoye : pourtant la déformation de la texture se produit bien et je répète personne ici ne parle de déformation conforme à une perspective 3D

    @dragonjoker59 : je teste ça de suite ^^

    @all: merci pour toutes vos réponses

  4. #24
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 208
    Points : 109
    Points
    109
    Par défaut
    On doit juste pas se comprendre superouf



    Tu déformes ta géométrie.
    Vu que chacun de tes sommets conservent la même coordonnée de texture, la même chose est plaqué deux géométries différentes.
    Ça ne peut donc pas marcher.

    Une des manière de s'en sortir rejoins l'idée de dragonjoker59 : il faut découper ta géométrie pour qu'elle soit composée de formes les plus proches possibles de rectangles.

  5. #25
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 43
    Points : 37
    Points
    37
    Par défaut
    Pour moi c'est ta texture de base qu'est pas bonne... t'essayes de faire rentrer un rectangle dans un trapèze (si on visualise dans le plan comme tu nous a expliqué), y'a donc forcément une déformation de la texture qui se crée. Si tu veux le rendu que tu nous a montré, il te faut une texture en forme de trapèze. A mon avis c'est aussi simple que ca ou alors subdiviser ta surface comme précédemment dit.

  6. #26
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par dragonjoker59 Voir le message
    Le problème vient du fait que les cartes graphiques dessinent des triangles, et donc lorsque tu utilises GL_QUAD ou GL_POLYGON, au moment de l'affichage ça revient au même que GL_TRIANGLES avec autant de triangles que nécessaire et tu te retrouves avec ce type de problèmes.
    Je ne sais pas si c'est possible de le contourner via la création de la texture, mais tu en tout cas le minimiser en découpant ton quad en autant de quads plus petits que nécessaire.
    dragonjoker59 a raison, en fait tu obtiens un comportement normal. Sépare tes primitives en plusieurs.

  7. #27
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Points : 1 087
    Points
    1 087
    Par défaut
    Citation Envoyé par ponce Voir le message
    dragonjoker59 a raison, en fait tu obtiens un comportement normal. Sépare tes primitives en plusieurs.
    Tout ce que ça va faire c'est changer la forme de la déformation mais ça ne donnera pas ce qu'il veut obtenir

  8. #28
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 479
    Points
    11 479
    Billets dans le blog
    11
    Par défaut
    Ca changera effectivement la forme de la déformation (de la texture uniquement, si c'est fait correctement), mais ça la rendra moins visible.
    En tout cas, je reste convaincu qu'en découpant la figure en 4 triangles se rejoignant en un point au centre du carré (et dont la position se modifierait en fonction des modifications de la géométrie) et si ce point a un UV variable (calculé en fonction de sa position et des coordonnées des 4 autres points), superouf obtiendra ce qu'il voudra. Par contre, ça impliquera des calculs qui, à première vue, me semblent tordus (calcul de la nouvelle position du point en fonction de la déformation, calcul de l'UV de ce point)
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

Discussions similaires

  1. texture mapping sur un trapeze
    Par lilin dans le forum DirectX
    Réponses: 12
    Dernier message: 22/12/2009, 15h47
  2. Texture mapping et raytracer
    Par pouletchu dans le forum Projets
    Réponses: 8
    Dernier message: 03/06/2008, 08h57
  3. problème de texture mapped font - tuto Nehe
    Par clairouch dans le forum OpenGL
    Réponses: 1
    Dernier message: 28/06/2006, 12h02
  4. Texture mapping multiple
    Par kikoland dans le forum OpenGL
    Réponses: 2
    Dernier message: 11/04/2006, 11h50
  5. Texture Mapping
    Par EsKa68 dans le forum OpenGL
    Réponses: 1
    Dernier message: 06/04/2005, 10h13

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