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 :

défilement de texture 2D appliquer sur un cube (opengl)


Sujet :

OpenGL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 6
    Points : 6
    Points
    6
    Par défaut défilement de texture 2D appliquer sur un cube (opengl)
    salut
    j'ai créer un cube 3D dont j'ai appliquer une texture par face donc six textures ,maintenant je voudrais appliquer 10 textures par exemple et les faire défiler une à une, la même sur les six faces, et 10 secondes plus ou moins par texture

    j'utilise une fenetre windows+opengl
    j'ai essayer en profitant du rafraichissement de WM_PAINT en passant la fonction "temps()"dans" case WM_PAINT" mais cela ne marche pas
    excuser moi d'être débutant en la matière
    comment faire :
    merci d'avance

    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
     
    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]);
        }
        }                
    };
    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
     
    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;
    }

  2. #2
    Membre actif Avatar de [Silk]
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2005
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2005
    Messages : 198
    Points : 201
    Points
    201
    Par défaut
    salut je ne peut pas vraiment t'aider mais si tu veux rafraichir ta fenetre utilise sa dans l'évènement onTimer de ton timer (tu pourras régler la frequence de rafraichissement comme sa):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TMaForm.Timer1Timer(Sender: TObject);
    begin
    InvalidateRect(MaForm.Handle, Nil, False);
    end;
    par contre c'est du delphi si tu est en c++(je connais pas) regarde sa :
    InvalidateRect,méthode (TWidgetControl)

    Planifie un nouveau dessin partiel du contrôle.

    Syntaxe Delphi :

    procedure InvalidateRect(constRect:TRect;EraseBackground:Boolean);

    Syntaxe C++:

    void __ fastcall InvalidateRect(const Types::TRect&Rect,bool EraseBackground);

    Description

    Invalidate informe un contrôle que sa surface doit être partiellement redessinée.Rect spécifie la zone du contrôle incorrecte.EraseBackground doit avoir la valeur true si l'arrière-plan du contrôle doit être effacéavant d'être redessiné.Pour plus d'informations,voir la méthode Invalidate.
    sa devrais te convenir si tu utilise Borland C++ builder mais sinon je ne garantis rien...
    voilà c'est tout ce que je peut faire pour toi
    @+

    [Silk]
    Silk

Discussions similaires

  1. c# applisquer 6 texture sur un cube
    Par t-die dans le forum DirectX
    Réponses: 1
    Dernier message: 08/06/2006, 17h54
  2. Réponses: 4
    Dernier message: 16/03/2006, 17h50
  3. Texture sur un cube en rotation sous Delphi !!!
    Par Cosmo dans le forum DirectX
    Réponses: 1
    Dernier message: 06/01/2004, 21h14

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