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 :

Texture automatique non réaliste


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut Texture automatique non réaliste
    Bonjour,
    J'utilise des textures automatiques plaquées sur des surfaces. Mais, j'obtient des textures non réalistes (uniquement un petit carreau de la texture est affiché)
    J'ai deux questions:
    1) Comment gérer d'une façon efficace des textures automatiques? (càd est ce qu'on peut forcer opengl à prendre les points extrimité de la texture).
    2) comment forcer l'affichage de la texture sur une seule face de la surface? J'ai utiliser cullface mais ça marche pas.
    Merci.

  2. #2
    Membre émérite
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Par défaut
    Salut,

    Regarde en premier lieu du coté des coordonées de texture, tu aura surement un bon element de réponse.

  3. #3
    Expert confirmé
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Par défaut
    OpenGL supporte la génération automatique de coordonnée de texture .. je te conseille de regarder dans ce sens

    Pour ta deuxième question, c'est étonnant que glCullFace ne marche pas ..

    Peux tu nous montrer comment tu l'as utilisé ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut
    Citation Envoyé par Ange_blond Voir le message
    Salut,

    Regarde en premier lieu du coté des coordonées de texture, tu aura surement un bon element de réponse.
    En fait, les coordonnées de la texture se font automatiquement (j'utilise glTexGen et non pas glTexCoord)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut
    Le code pour générer automatiquement une texture est le suivant
    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
     
    float ObjPlaneS[] = { 1.0f, 0.0f, 1.0f, 0.0f };
    	float ObjPlaneT[] = { 0.0f, 1.0f, 0.0f, 0.0f };
    	float ObjPlaneR[] = { 0.0f, 0.0f, 1.0f, 0.0f };
    	float ObjPlaneQ[] = { 0.0f, 0.0f, 0.0f, 1.0f };
     
    	gl.glEnable(GL.GL_TEXTURE_GEN_S); // Auto Texture Generation
    	gl.glEnable(GL.GL_TEXTURE_GEN_T);
    	gl.glEnable(GL.GL_TEXTURE_GEN_R);
    	gl.glEnable(GL.GL_TEXTURE_GEN_Q); 
    	gl.glTexGeni( GL.GL_S, GL.GL_TEXTURE_GEN_MODE, GL.GL_OBJECT_LINEAR );
    	gl.glTexGeni( GL.GL_T, GL.GL_TEXTURE_GEN_MODE, GL.GL_OBJECT_LINEAR );
    	gl.glTexGeni( GL.GL_R, GL.GL_TEXTURE_GEN_MODE, GL.GL_OBJECT_LINEAR );
    	gl.glTexGeni( GL.GL_Q, GL.GL_TEXTURE_GEN_MODE, GL.GL_OBJECT_LINEAR );
    	gl.glTexGenfv(GL.GL_S, GL.GL_OBJECT_PLANE, ObjPlaneS,0);
    	gl.glTexGenfv(GL.GL_T, GL.GL_OBJECT_PLANE, ObjPlaneT,0);
    	gl.glTexGenfv(GL.GL_R, GL.GL_OBJECT_PLANE, ObjPlaneR,0);
    	gl.glTexGenfv(GL.GL_Q, GL.GL_OBJECT_PLANE, ObjPlaneQ,0);
    	//gl.glDisable(GL.GL_TEXTURE_GEN_S); // Auto Texture Generation
    	//gl.glDisable(GL.GL_TEXTURE_GEN_T);
    Et pour l'appel de glCullFace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    tackleAutomaticTexture(gl); 
    gl.glCullFace(GL.GL_FRONT);// J'ai essayé même GL_BACK
    gl.glBegin(GL.GL_POLYGON);
    ..............

  6. #6
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    Citation Envoyé par choko83 Voir le message
    1) Comment gérer d'une façon efficace des textures automatiques? (càd est ce qu'on peut forcer opengl à prendre les points extrimité de la texture).
    en utilisant pas les coordonnées automatiques mais les texCoords justement... les coordonnées automatiques de textures servent à faire des projection, ici, ça ne semble pas être ton cas (ou alors, c'est mal exprimé)
    Citation Envoyé par choko83 Voir le message
    2) comment forcer l'affichage de la texture sur une seule face de la surface? J'ai utiliser cullface mais ça marche pas.
    Merci.
    qu'est ce que tu veut exactement du coté non texturé ? si tu ne veut pas voir la face, alors, c'est le culling qu'il faut utiliser, si tu veut voir une face avec une autre texture (ou une face sans texture), alors, il faut aussi utiliser le culling, mais en ajoutant une face dans le sens opposé de la première...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut
    je voulais utiliser des textures automatiques dans le but d'optimiser les traitements et le stockagede données.

  8. #8
    Membre éprouvé
    Inscrit en
    Juin 2008
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 162
    Par défaut
    pour le CullFace t'as pas oublié glEnable(GL_CULL_FACE) par hasard?

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut
    Citation Envoyé par goast Voir le message
    pour le CullFace t'as pas oublié glEnable(GL_CULL_FACE) par hasard?
    Oui, t'as raison. J'ai oublié de mettre gl.glEnable(GL.GL_CULL_FACE). Maintenant ça marche trés bien.
    Merci.

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

Discussions similaires

  1. Texture hachée non continue
    Par le mage tophinus dans le forum Interfaces Graphiques en Java
    Réponses: 0
    Dernier message: 18/11/2008, 12h36
  2. [D3D9] Texture taille non standard
    Par toukito dans le forum DirectX
    Réponses: 2
    Dernier message: 22/01/2008, 19h44
  3. Réponses: 1
    Dernier message: 23/07/2007, 15h30
  4. Réponses: 32
    Dernier message: 18/06/2007, 08h28
  5. Ajustement de textures automatique
    Par nicolas66 dans le forum OpenGL
    Réponses: 2
    Dernier message: 26/11/2004, 01h59

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