TEXTURE OPENGL [Résolu]

Signaler
Messages postés
71
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
21 octobre 2007
-
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
-
SALUT
je voudrais afficher des textures bmp sur les faces d'un cube ,un défilement de 10 textures par exemple ,qui s'affichent une par une ,la même sur les six faces ,chaque texture doit s'afficher pendant 5 secondes
j'utilise une fenêtre windows
comment faire
j'ai essayé d'utiliser case WM_PAINT pour profiter de chaque rafraississement du dessin et en créant une fonction temps();qui compte le nombre de passage par CASE WM_PAINT mais ca marche pas
OU alors il faut utiliser le message de WINDOWPROC pour qu'il rafraichit en permanence CASE WM_PAINT ????
EXCUSER moi mais je débutant en prog
MERCI D'AVANCE
@+
ex:
void temps() <-----------------------------------
{
i++;
if(i>0&&i<2)
{
glBindTexture (GL_TEXTURE_2D, texName[0]);
}
else
{
if(i>10&&i<12)
{
glBindTexture (GL_TEXTURE_2D, texName[1]);
}
}
};
---------------------------------------------------------------------------------------
ET
----------------------------------------------------------------------------------------
LRESULT CALLBACK WindowProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{


case WM_CREATE:
DC=GetDC (hWnd);
InitPixelFormat (DC);
RC = wglCreateContext (DC);
wglMakeCurrent (DC, RC);
glEnable (GL_DEPTH_TEST);
glClearColor (0,0,1,0);
glEnable(GL_TEXTURE_2D);

LoadTexture1("photo1.bmp");
LoadTexture2("photo2.bmp");
LoadTexture3("photo3.bmp");
LoadTexture4("photo4.bmp");
LoadTexture5("photo5.bmp");
LoadTexture6("photo6.bmp");
break;
case WM_CLOSE:
wglMakeCurrent (NULL, NULL);
wglDeleteContext (RC);
ReleaseDC (hWnd,DC);
PostQuitMessage (0);
break;
case WM_SIZE:
glViewport (0,0,LOWORD (lParam),HIWORD (lParam));
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluPerspective (45,(float)(LOWORD(lParam))/(float)(HIWORD(lParam)),1,100);
break;
case WM_PAINT:
temps(); <-----------------------------------------------------
RePaint ();
break;
return 0;
break;
default:
return DefWindowProc (hWnd,uMsg,wParam,lParam);
break;
}
return 0;
}

6 réponses

Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
ca marche pas avec la fonction que je t'ai donné???
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
ah?

oups ^^

jme disais aussi, 2 projets qui se ressemblent comme ca ... mdr

mais alors c'est quoi le pb?

ah oué il faut InvalidateRect(RECT); je crois; faut aussi un timer (mais ca c'est pas une bonne solution)

encore une fois le basecode de Nehe fait ca impec', sans timer, avec gestion des touches et tout

je ne dis pas de faire copier coller mais ca t'expliquera comment te
dépatouiller avec les boucles Windows, moi aussi je galere avec ca....

si tu as VC6:

http://nehe.gamedev.net/counter.asp?file=files/appwizards/nehe_opengl_appwizard_vc6.zip

sinon tu me donnes ton mail je t'envoie un projet vide pour DevC++
++
_______________________


Omnia vincit labor improbus
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
va voir sur le site de Nehe, il a fait un wizard pour ca.

sinon pour les images / le cube ya eu une source comme ca ya env. un mois

_______________________


Omnia vincit labor improbus
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
C'est normal c'est la sienne!
Messages postés
71
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
21 octobre 2007

salut
pour l'instant j'arrive à charger une texture differente sur chaque face en utilisant glbindtexture(GL_TEXTURE_2D,texname[6]);
ca j'ai capter mais pour le défilement de texture
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
comment ca pour le défilement?

ben c'est bidon quoi... a intervalle de temps régulier tu chages le 'i'
dansglBindTexture(2d,texname[i]).... c'est tout... pas de mystere...

_______________________


Omnia vincit labor improbus