begin process at 2012 02 12 13:37:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

Texture openGl


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Texture openGl

dimanche 18 décembre 2005 à 12:57:41 | Texture openGl

neodelphi

Membre Club
Bonjour tout le monde,

j'essaye désespérément d'ajouter des textures dans mon projet openGl, mais je devient fou... J'ai écrit une classe qui me permet de charger des fichiers tga (elle fonctionne). Lors de mon initialisation je cré donc ma texture:


CTGAFile* ptgaFile = new CTGAFile("nom de fichier");

glGenTextures(1, &id);
glBindTexture(GL_TEXTURE_2D, id);
glTexImage2D(GL_TEXTURE_2D, 0, 3, ptgaFile->getWidth, ptgaFile->getHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, ptgaFile->getPixels());
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); 
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glEnable(GL_TEXTURE_2D);



Puis lors du rendu:

glBindTexture(GL_TEXTURE_2D, id);


J'ai regardé plusieurs tutoriaux, et normalement mon code devrait fonctionner, enfin selon moi...
Le seul moyen que j'ai trouvé pour obtenir des résultat est de refaire toute l'étape d'initialisation avant chaque rendu, mais c'est pas super lol... En fait je n'ai pas l'impression que openGl mémorise ce que je fait avec le glBindTexture...

D'où viend ce problème ?

neodelphi
dimanche 18 décembre 2005 à 16:37:22 | Re : Texture openGl

rrk275

Réponse acceptée !
J'imagine que dans tous mes conseils il y en aura pas mal que tu auras deja vu mais pour une texture ,
glShadeModel(GL_FLAT); (en tout cas je crois) doit etre mis apres glEnable(GL_TEXTURE_2D);
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); avant     glEnable(GL_TEXTURE_2D);
et apres on met glBegin(GL_QUADS);
    glTexCoord2f(1, 0); glVertex3f(-2.0, -1.0, 0.0);
    glTexCoord2f(0, 1); glVertex3f(-2.0, 1.0, 0.0);
    glTexCoord2f(1, 1); glVertex3f(0.0, 2.0, 0.0);
    glTexCoord2f(1, 0); glVertex3f(0.0, -1.0, 0.0);
    glEnd();
pour afficher un carré texturé ...
le glTexCoord2f permet de choisir ou la texture doit etre prise
0,0    1,0
________
| -- --|
|   |  |(texture a l'endroit)
|   |  |
--------
0,1   1,1

0,1    1,1
________
| -- --|
|   |  |(texture a l'envers)
|   |  |
--------
0,0   1,0

pour plus de renseignement voir tous les tutos sur les textures ...
rrk275
mardi 20 décembre 2005 à 14:38:36 | Re : Texture openGl

KeniiyK

Membre Club
Réponse acceptée !
Salut.

Le seul moyen que j'ai trouvé pour obtenir des résultat est de refaire toute l'étape d'initialisation avant chaque rendu, mais c'est pas super lol... En fait je n'ai pas l'impression que openGl mémorise ce que je fait avec le glBindTexture...
Cela veut donc dire qu'il y a quelque chose que tu fais lors de l'initialisation que tu ne fais pas ensuite pour ton rendu comme par exemple glEnable(GL_TEXTURE_2D); (besoin que d'un seul appel mais bon c'est pour l'exemple).
J'ai du mal a croire que cela vienne d'OpenGL.

rrk275-> glShadeModel(GL_FLAT); n'a rien avoir avec les textures
L'ordre d'appel entre glEnable(GL_TEXTURE_2D); et glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); ne change rien du tout, OpenGL est une machine a état, l'ordre est important pour les méthodes de rendu de géométrie...

KeniiyK.

lundi 26 décembre 2005 à 12:06:57 | Re : Texture openGl

neodelphi

Membre Club
Merci pour vos réponses... Je viend de trouver d'où viend mon problème: j'effectuait l'initialisation de la texture avant de faire glXMakeCurrent(pdisplay, window, context);... Je commençai a devenir dingue, j'ai trouvé le problème en fesant des printf des id de texture que me renvoyai openGl... Bref ça marche.

neodelphi
lundi 26 décembre 2005 à 13:29:33 | Re : Texture openGl

ekinox17

Et oui rien ne vaut un bon debugage avec du printf "en veut tu en voila"

C U Later
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 + 1 = 1, c'est l'harmonie parfaite (citation de J-C Van-Dame)
Vive la logique: 1 ou 1 ça fait bien 1 : pas si fou que ça JC ;)




Cette discussion est classée dans : opengl, gl, texture, 2d, ptgafile


Répondre à ce message

Sujets en rapport avec ce message

Problème d'affichage de texture [ par Turok ] Bonjour,Alors voila le problème est simple, voici un code que j'utilise pour afficher une simple image 2d en utilisant OpenGl et SDL, mais celui ci ne bitmap avec SDL_image? [ par Batman60 ] Bonjour Comment afficher des bitmaps correctement(bonnes couleurs,et image non inversée) avec ce code (SDL_ima problème de transparence sur texture opengl [ par Batman60 ] bonsoirla transparence sur la texture tga ne s'affiche pas, pourtant j'utilise le code ci-dessous et je ne vois pas quoi d'autre à ajouter ou modifier Multi-texturing [ par barraq ] Voila j'affiche ma scene avec cette fonction : void Terrain::Draw(VObject *CurrentObject) {     int  g_DetailScale = 128;     //Texture 0     glActi probleme pour texturer une sphere [ par mikey84 ] Bonjour! j'ai un énorme problème. J'ai essayé d'appliquer une texture sur ma sphère avec la librairie devil, avec opengl et glut et aucun n'a fonction Multitexturing OpenGl [ par goutbouyo ] Salut,Je charge une map BSP dans un jeu fait en OpenGl.Il y a donc du multitexturing.Le problème c'est quand j'affiche mes persos en MD2, j'active la OPENGL TEXTURE BMP [ par Batman60 ] bonjourvoici mon code compilé sur dev-cppc'est un cube tournant 3D affichant un bmp sur les six facesje voudrais texturer plusieurs bmp sur les six fa Listes OpenGL : Problème de texture [ par smoove5198 ] Bonjour, Je travaille actuellement sur un projet en opengl. Pour des raisons de performence je me suis ecrit une classe qui crée du texte a partir d' TEXTURE SDL_IMAGE JPEG [ par Batman60 ] salutquelqu'un peut me dire ce qui cloche dans mon bout de code utilisé pour charger une texture jpeg j'utilise la lib SDL_IMAGE pour celaest-ce que c image non chargée [ par aurelivs ] bonjourje cherche a faire une appli en C++ et OpenGL pour charger une image et afficher cette image (puis la transformer). cependant je n'arrive pas à


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,933 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales