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

Développement 2D, 3D et Jeux Discussion :

Quelques petites questions par rapport aux textures


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 80
    Points : 48
    Points
    48
    Par défaut Quelques petites questions par rapport aux textures
    Salut à tous ,

    J'aimerais savoir quelque chose : qu'est-ce qui est le plus optimisé pour la construction d'un mur :

    Utiliser plusieurs polygones et appliquer la même texture pour chaque polygone
    ou bien
    Faire un seul polygone et faire GL_REPEAT avec la texture ?

    Si la deuxième est la bonne (j'utilise en ce moment la première) quelle commande appeler pour utiliser GL_REPEAT ? Si vous aviez un exemple en plus , parce que j'ai eu du mal à trouver quelque chose de convaincant sur le net .
    D'autres questions viendront sans doute après mais pour l'instant j'aimerais savoir pour ça .

    Merci d'avance .

  2. #2
    screetch
    Invité(e)
    Par défaut
    optimisé dans quel sens ? vitesse ou jolinesse ?

    un seul polygone a rendre avec une texture repetée sera affiché sans doute plus vite mais aura un eclairage incorrect a l'interieur, car l'eclairage est calculé aux coins. a moins que tu utilise des pixel shaders evidemment.

    et puis ca depend de la facon dont tu dessines ce truc, ce n'est pas en diminuant le nombre de polygones qu'on ameliore drastiquement les performances.

  3. #3
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 022
    Points : 2 273
    Points
    2 273
    Par défaut
    Au sujet de la vitesse, faudrait aussi prendre en compte tes tests de collisions.
    Vive les roues en pierre

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    Je n'ai pas encore implémenté de collisions.
    J'utilise un loader d'images de type .tga que j'ai pris sur ce site. Les textures "au loin" sont floues... J'utilise ceci dans la fonction tgaSetTexParams :

    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);

    Je viens de commencer à attaquer les textures ,et je ne sais pas s'il y a meilleur ou pas ...

    Pour le GL_REPEAT , avec quelle commande l'utiliser ?

  5. #5
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 022
    Points : 2 273
    Points
    2 273
    Par défaut
    Pour répéter sur les 2 axes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
    Vive les roues en pierre

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    Merci pour ta réponse mais aucun effet ... Voici le bout de mon code sur le polygon qui va accueillir la texture qui devrait se répéter :
    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
     
    glPushMatrix();
    		glCullFace(GL_FRONT);
    		glBindTexture(GL_TEXTURE_2D,idTex[0]);
    		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
                glTexEnvf(GL_TEXTURE_ENV,
                    GL_TEXTURE_ENV_MODE,
                    GL_REPLACE);
     
     
    	glBegin(GL_POLYGON);
    		glTexCoord2f(0.0,0.0);  glVertex3f(3.0,-0.5,3.0);
                    glTexCoord2f(1.0,0.0);  glVertex3f(3.0,-0.5,7.0);
                    glTexCoord2f(1.0,1.0);  glVertex3f(3.0,2,7.0);
                    glTexCoord2f(0.0,1.0);  glVertex3f(3.0,2,3.0);
    	glEnd();
     
    	glPopMatrix();
    Je pense que cela vient des lignes entre glBegin() et glEnd(). Mais il faut bien spécifier les coordonnées des textures avec les coordonnés de mon polygone ...

  7. #7
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 022
    Points : 2 273
    Points
    2 273
    Par défaut
    La texture s'affiche quand même mais scalée ?
    Il faut que tu calcules les coordonnées de la texture en fonction des dimensions de tes faces. En général tu divises les dimensions de la face par les dimensions de la texture et tu choisis le coin par lequel tu veux commencer. Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    float texWidth = largeurFace / largeurTexture
    float texHeight = longueurFace / longueurTexture;
    Tu peux tester en modifiant tes coordonnées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    glTexCoord2f(0.0,0.5);  glVertex3f(3.0,-0.5,3.0);
    glTexCoord2f(0.5,0.0);  glVertex3f(3.0,-0.5,7.0);
    glTexCoord2f(0.5,0.5);  glVertex3f(3.0,2,7.0);
    glTexCoord2f(0.0,0.5);  glVertex3f(3.0,2,3.0);
    En théorie elle devrait être répétée 2 fois.
    Vive les roues en pierre

  8. #8
    screetch
    Invité(e)
    Par défaut
    ca devrait etre 2 plutot que 0,5 non ?

  9. #9
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 022
    Points : 2 273
    Points
    2 273
    Par défaut
    Oui, effectivement ^^
    Vive les roues en pierre

Discussions similaires

  1. Question par rapport aux User stories
    Par ErEcTuS dans le forum Méthodes Agiles
    Réponses: 3
    Dernier message: 03/05/2010, 01h44
  2. Réponses: 6
    Dernier message: 29/10/2008, 22h06
  3. [Configuration] question par rapport aux chemins
    Par Death83 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 16
    Dernier message: 11/12/2006, 10h24
  4. [CSS] Aligner le texte par rapport aux puces de listes
    Par Invité dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 20/11/2005, 10h35
  5. [Choix] Quelles attentes par rapport aux SGBD ?
    Par thierry34 dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 13/07/2002, 20h08

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