begin process at 2012 05 29 12:52:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

mouvement de texture


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

mouvement de texture

dimanche 23 avril 2006 à 04:06:40 | mouvement de texture

aymardhb9

Slt , j'ai un petit pb.
En fait , j'ai texturé une plaque sur un terrain  pour donner une impression de lac mais j'aimerais faire bouger la texture , pour simuler un mouvement de vague ou de courant , j'ai appliquer la texture avec le code suivant :

static const float pt[8][3] = { {-1,-1,-1}, {1,-1,-1}, {1,-1,1}, {-1,-1,1}, {-1,1,-1}, {1,1,-1}, {1,1,1}, {-1,1,1} };
 static const int f[6][4] = { {0,1,2,3}, {5,4,7,6}, {1,5,6,2}, {0,4,7,3}, {3,2,6,7}, {0,4,5,1} };
 static const float n[6][3] = { {0,-1,0}, {0,1,0}, {1,0,0}, {-1,0,0}, {0,0,1}, {0,0,-1} };
 static const float uv[4][2] = { { 0, 0}, {0,1}, {1,1}, {1,0} };
 int i,j;
 glScalef(600.0,-900.0,-20.0);
  glTranslatef( -0.1f, -0.1f, 50.0f);
 glEnable(GL_TEXTURE_2D);
 for(i=0;i<6;i++)
 {
        glDisable(GL_LIGHTING);
  glNormal3f( n[i][0], n[i][1], n[i][2] );
  for(j=0;j<4;j++)
  {
            glBindTexture(GL_TEXTURE_2D,sbi1);
            glBegin(GL_QUADS);            
   glTexCoord2f( uv[j][0], uv[j][1] );
   glVertex3f( pt[ f[i][j] ][0], pt[ f[i][j] ][1], pt[ f[i][j] ][2] );  
  }
  glEnd();
 } 

dimanche 23 avril 2006 à 10:07:21 | Re : mouvement de texture

spiky31

Membre Club
salut

il ya deux solutions :

1 : la plus simple mais la mois efficace
Utiliser les matrices de texture : glMatrixMode(GL_TEXTURE)
ensuite faire des glTranslate

2 : Utiliser les textures shaders mais il faut avoir le matos qui le supporte

voila a+

Il n'y a que ceux qui font rien qui ne se trompent jamais

dimanche 23 avril 2006 à 22:01:55 | Re : mouvement de texture

luhtor

Mais l'efficacité ne semble pas etre sa préoccupation, sinon, on ne verrait pas le mot glBegin.
Donc utiliser la matrice de texture est la solution.

lundi 24 avril 2006 à 03:39:46 | mouvement de texture

aymardhb9

Finalement au lieu de construire un cube entier , j'ai juste dessiné une face et j'ai appliqué ma texture d'eau  . J'ai ajouté une variable pour pouvoir faire avancé ma texture et donc faire du mouvement .  Elle avance mais juste pendant quelque secondes et ensuite elle s'arrête et déforme la texture . Comment faire en sorte que le mouvement ne s'arrête pas . Voici mon code .
void Envmap::draw1()
{
glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D,sbi1);
    glDisable(GL_LIGHTING);
    glBegin(GL_QUADS);
    static float a=0;
    glTexCoord2f(a+0,0);         
    glVertex3f(-1,-1,1);
    glTexCoord2f(a+0,1);        
    glVertex3f(-1,1,1);
    glTexCoord2f(a+1,1);
    glVertex3f(1,1,1);
    glTexCoord2f(a+1,0);
    glVertex3f(1,-1,1);
    glEnd();
    a+=0.001f;
}
lundi 24 avril 2006 à 07:53:47 | Re : mouvement de texture

spiky31

Membre Club
essaye ca :

void Envmap::draw1()
{
    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D,sbi1);
    
    //glDisable(GL_LIGHTING);  // inutile pas activé par defaut
    
    glBegin(GL_QUADS);
   
    static float a=0.0f;
    
    glMatrixMode(GL_TEXTURE);
    glPushMatrix();
    glTranslatef(a,0.0f,0.0f);
    glMatrixMode(GL_MODELVIEW); // si tu veux modifier ta scene
    
    glTexCoord2f(0.0f,0.0f);         
    glVertex3f(-1.0f,-1.0f,1.0f);
    glTexCoord2f(0.0f,1.0f);        
    glVertex3f(-1.0f,1.0f,1.0f);
    glTexCoord2f(1.0f,1.0f);
    glVertex3f(1.0f,1.0f,1.0f);
    glTexCoord2f(1.0f,0.0f);
    glVertex3f(1.0f,-1.0f,1.0f);
    
    glMatrixMode(GL_TEXTURE);
    glPopMatrix();

    glMatrixMode(GL_MODELVIEW);
    
    glEnd();
   
    a+=0.001f;
}

Il n'y a que ceux qui font rien qui ne se trompent jamais

lundi 24 avril 2006 à 10:09:05 | Re : mouvement de texture

luhtor

Apres tu rajoutes un timer au lieu de ce "a+=0.001f;".
Pour ton truc a toi, le pb vient de la création de ta texture, tu as pas du mettre les bons paramètres. Faut mettre l'option REPEAT dans la fonction glTexParameter*.


lundi 24 avril 2006 à 11:14:43 | mouvement de texture

aymardhb9

Avec les Matrix mode ,  il n'ya plus de mouvement  , mais par contre j'ai modifié dans ma fonction de texture en faisant GL_REPEAT comme luthor m'a dit et ça marche . je vous contacte si ya d'autres pbs . Merci .


Cette discussion est classée dans : static, const, gl, texture, pt


Répondre à ce message

Sujets en rapport avec ce message

AIDEZ MOI scp problème de texture bmp avec glaux [ par progundeath ] aidez moi svp g un big problème que j'arrive pas à résoudre mais bon je ne suis qu'un newbie d'autres le résoluront en 10 secondes enfin j'espère donc texture sphere opengl [ par bog29 ] Hi,J ai un petit soucis, je veux plaquer une texture sur une sphere, ce que j arrive a faire , mais ensuite lorsque je mets la sphere en rotation, la [glut] textures [ par khayyam ] bonsoir tout le monde, mon problème est simple : si je décare une texture de la manière suivanteunsigned char data[]={1,1,255,1,255,1,1,255,1,101,102, [Open GL]Afficher plusieurs images [ par goutbouyo ] Salut, c'est encore moi, désolé ...En fait c'est que je n'arrive pas à charger plusieurs images.J'utilise ça :Je charge une image :void LoadTexture() Charger TGA avec open gl [ par goutbouyo ] Salut,Depuis ce midi j'essaie de charger un fichier TGA et de l'appliquer à une surface mais je n'y arrive.Est ce qu'il existe sous open gl un code si Pb de FRONT et BACK buffer avec texture [ par gastoudou ] Bonjour à tous,Je suis en train de faire un projet en OpenGL pour l'école sur un puzzle 2D. Il y a 16 cases mélangées et on doit les remettre à leur p labyrinthe en 3D sytle ecran veille windows [ par gastoudou ] Bonjour à tous,Et oui encore moi pour une question, que dis-je, une mission pour une âme charitable.Je suis en train de faire un labyrinthe en 3D styl Texture d'une glutSphere [ par Dante41 ] Salut à tous, J'ai besoin de votre aide. j'essaie de recréer le système solaire en OpenGL par conséquent , il faut que je fasse toutes les planètes av Affichage correct d'une sphère et de sa texture [ par mikey84 ] bonjour jai un gros problème que je n'arrive pas a résoudre et la je sais plus quoi faire! je m'explique : j'affiche une shpère à l'écran et je la pla 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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,577 sec (4)

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