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 :

Génération automatique des coordonnées de textures.


Sujet :

OpenGL

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Points : 73
    Points
    73
    Par défaut Génération automatique des coordonnées de textures.
    Salut,
    J'aimerais savoir comment générer des coordonnées de textures automatiquement pour l'utilisation avec glTexCoordPointer(...).
    Merci

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 37
    Points : 41
    Points
    41
    Par défaut
    C'est vague, il faudrait savoir ce que tu souhaites texturer déjà. Par exemple sur Developpez il existe un article qui traite d'un algo pour texturer automatiquement un mesh issu d'une heightmap.

    Bref, explique un peu plus le problème! ^^

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Points : 73
    Points
    73
    Par défaut
    Oui, biensur ^^
    En fait, je génère un maillage pour une surface aquatique (pour simuler un ocean pour être précis), et là, faut projeter la texture de l'eau et la normal map depuis l'équation du plan x=0 y=1 z=0, sauf que j'arrive pas (ou plutot j'ai du mal à voir comment) attribuer les coordonnées de textures générées automatiquement (GL_TEXTURE_GEN_S/T/R/Q) au maillage.
    voila ce que je fait à peu près:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    glEnable(GL_TEXTURE_GEN_S);
    glEnable(GL_TEXTURE_GEN_T);
    glEnable(GL_TEXTURE_GEN_R);
    glEnable(GL_TEXTURE_GEN_Q);
     
    float plane[] = {0.0f, 1.0f, 0.0f, 0.0f};
     
    glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
    glTexGenfv(GL_S, GL_EYE_PLANE, plane);
     
    glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
    glTexGenfv(GL_T, GL_EYE_PLANE, plane);
     
    glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
    glTexGenfv(GL_R, GL_EYE_PLANE, plane);
     
    glTexGeni(GL_Q, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
    glTexGenfv(GL_Q, GL_EYE_PLANE, plane);
     
    glEnableClientState(GL_VERTEX_ARRAY);
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    glEnableClientState(GL_NORMAL_ARRAY);
     
    glVertexPointer(...);
    glNormalPointer(...);
     
    glEnable(GL_TEXTURE_2D);
    glTexturePointer(/*Là je bloque*/);
    glActiveTexture(GL_TEXTURE0_ARB);
    glBindTexture(GL_TEXTURE_2D, diffuseMapID);
     
    glEnable(GL_TEXTURE_2D);
    glTexturePointer(/*Là je bloque*/);
    glActiveTexture(GL_TEXTURE1_ARB);
    glBindTexture(GL_TEXTURE_2D, normalMapID);
     
     
    glDrawElements(...).
     
    glDisableClientState(GL_VERTEX_ARRAY);
    glDisableClientState(GL_NORMAL_ARRAY);
    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
     
    glDisable(GL_TEXTURE_GEN_S);
    glDisable(GL_TEXTURE_GEN_T);
    glDisable(GL_TEXTURE_GEN_R);
    glDisable(GL_TEXTURE_GEN_Q);
    Voila,
    Merci =)

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 37
    Points : 41
    Points
    41
    Par défaut
    Alors là pour être honnête j'en ai vraiment aucune idée. Par contre, pourquoi passer par cette fonctions pour générer tes coordonnées de texture ? Il ne serait pas plus simple de les générer toi même ?
    Un simple:
    largeur: largeur de la surface
    longueur: longueur de la surface

    Imaginons que tu as largeur*longueur points.
    Tu fais une "découpe" de ta texture, non ? Tu remplis ça dans un tableau que tu donnes à manger à OpenGL.

    Apparament tu essayes de faire un rendu d'eau, si tu veux j'ai un lien interessant pour ça: http://blogs.wefrag.com/Xfennec/2006...er-pour-l-eau/

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Points : 73
    Points
    73
    Par défaut
    Merci pour ton article =)
    Pour ce qui est de la génération des coordonnées de textures auto par découpe (comme pour les textures fonts) ce n'est pas trop mon objectif pour plusieurs raisons, la raison majeur est qu'une fois les coordonnées de textures générées, on peut plus les modifier de façon directe, et ça va pas trop m'aider pour animer mon eau par la suite ...
    Ce que je cherche à faire c'est de projeter un texture sur le maillage de l'eau.
    Merci quand même =)

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Points : 73
    Points
    73
    Par défaut
    Je reposte pour dire que mon problème est résolu =)
    à soack:
    Merci, ton idée m'a beaucoup aidé, au lieu de projeter ma texture, j'ai généré les coordonnées sur chaque vertex, et, là où je me trompais, cette technique est super paramétrable, vue qu'on peux gérer la répétition de la texture à la volée, il suffit juste de multiplier les coordonnées de texture par le nombre approprié =)
    Encore une fois, merci soack.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/10/2009, 19h28
  2. outil de génération automatique des fichiers de mapping
    Par snoox87 dans le forum Hibernate
    Réponses: 4
    Dernier message: 12/08/2009, 16h14
  3. Réponses: 1
    Dernier message: 16/07/2009, 12h01
  4. Réponses: 6
    Dernier message: 28/11/2006, 19h12
  5. [JUnit] Génération automatique des classes de tests
    Par sidi.elmoctar dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 05/08/2006, 00h54

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