Bonjour a tous,
voila le code d´une fonction que j´utilise pour faire une translation suivant z:
void anim_translatez(double zdebut, double zfin, double pas, int idtexture)
{
while(zdebut ! = zfin)
{
glBindTexture(GL_TEXTURE_2D, 00); / / texture noir
// efface image precedent
glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex3i(-1, -1, zdebut);
glTexCoord2f(0, 1); glVertex3i(-1, 1, zdebut);
glTexCoord2f(1, 1); glVertex3i(1, 1, zdebut);
glTexCoord2f(1, 0); glVertex3i(1, -1, zdebut);
glEnd();
zdebut += pas; / / on avance l´image
glBindTexture(GL_TEXTURE_2D, idtexture); / / texture choisi
// dessine un carre
glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex3i(-1, -1, zdebut);
glTexCoord2f(0, 1); glVertex3i(-1, 1, zdebut);
glTexCoord2f(1, 1); glVertex3i(1, 1, zdebut);
glTexCoord2f(1, 0); glVertex3i(1, -1, zdebut);
glEnd();
glFlush(); / / force l´affichage
glutSwapBuffers(); / / on inverse les buffers
glutPostRedisplay(); / / fenetre redessiné
}
}
en fait j´essai de faire la meme chose sur x, mais je n´y arrive pas ! !! ![]()
Merci par avance...
Bob
oooooooooooooooooooooooooooo
ça doit venir de la position de ta caméra ![]()
quelle est elle ?
ton glulookat a quoi comme params ?
OHHHH!!!
C´est du javata!!!!!
on y comprends rien mais que c bo!
![]()
oula, dans " javata", y´a " java" --> BERK ! !
On parle de langage C dans ce topic ![]()
voila mon fonction de redimensionnement:
/ / fonction redimensionnemnt
void reshape(int w, int h)
{
glViewport(0, 0, ( GLsizei) w, ( GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f, ( GLfloat)w/(GLfloat)h, 1.0f, 150.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
en fait la fonction pour elle fait bien ce que je veux, une translation suivant z, le truc c´est que quand j´essai de faire la meme chose suivant x, bah ca ne marche pas...
j´aimerais bien avoir des conseils, ou meme un code pourquoi pas ! !!
tout dépend ce que tu appelles ne pas marcher
d´apres ce que j´en déduis, rien n´apparait c´est bien ça ?
tu ne m´as pas montré ta fonction glulookat
c´est a dire que je soupçonne que ta caméra soit - par hasard - placée devant ton modele quand tu geres ton z, mais quand tu essaies avec x, ta caméra ne regarde pas au bon endroit !
bah en fait je procede de la meme facon que pour la fonction sur z, sauf que je deplace les " x"
certes, j´ai bien compris ![]()
mais du coup, ton quad n´est plus au meme endroit dans l´espace !
et cependant, ta caméra est, elle, au meme endroit qu´avant, donc elle ne voit plus rien
Un peu comme si je dessine un quad derriere toi : toi tu regardes toujours ton PC, donc tu ne le vois pas !
tu n´as pas de glulookat ?
je vais te le faire en version mathématique :
on passe en 2D : ton quad devient un segment :
soit le repere O,i,j
place le point A(5,1) et B(5,2) : c´est ton quad
trace les droites y=x et y=-x, mais que la partie telle que x>0
tu as ton champ de vision : tu vois que le segment A,B est dedans
maintenant, inverse les coords x et y de A et B
--> ton segment est hors du champ !
Il faut bouger la caméra ![]()
et si je veux rien toucher juste faire avec les coordoné?
alors il faut que tu mettes ton objet dans le champ de ta caméra
je ne sais plus quelle est exactement la position par défaut de la cam :
ce que je sais c´est qu´elle est sur le point 0,0,0, qu´elle regarde selon l´axe Z, donc tu vois le plan formé par les axes x,y
mais essaie :
glTexCoord2f(0, 0); glVertex3i(-xdebut, -1, z);
glTexCoord2f(0, 1); glVertex3i(-xdebut, 1, z);
glTexCoord2f(1, 1); glVertex3i(xdebut, 1, z);
glTexCoord2f(1, 0); glVertex3i(xdebut, -1, z);
et pour z, essaie -10 ou +10 tu me diras si ça marche
je viens d´essayer et en fait ca fait un truc bizar... la texture s´ettire plus ou moins avec ta fonction ! !!
lol ! !
normal
j´ai mis des -xdebut ![]()
enleve les - devant les xdebut
mais au moins tu la vois ! tu vois que ça venait de la ! n´oublie jamais de mettre un glulookat, car un prog sans glulookat, C sale ![]()
Cyber_Bob tu es passe par quelle(s) lib(s) avant de te mettre a openGL qui serve à faire des JV ( au cas où tu t´y serais pas mis directement) ?
tu veux que je mette:
glTexCoord2f(0, 0); glVertex3i(xdebut, -1, z);
glTexCoord2f(0, 1); glVertex3i(xdebut, 1, z);
glTexCoord2f(1, 1); glVertex3i(xdebut, 1, z);
glTexCoord2f(1, 0); glVertex3i(xdebut, -1, z);
bizar ce que tu me dis la ! !!
Koyo-K
Posté le 27 août 2004 à 01:03:45
Cyber_Bob tu es passe par quelle(s) lib(s) avant de te mettre a openGL qui serve à faire des JV ( au cas où tu t´y serais pas mis directement) ?
Je pense que si tu as de bonnes bases en C/C++, tu peux commencer directement par Opengl pour créer des jeux.
bah en fait j´ai un peu tout essayé, j´ai essayé SDL pour la 2D et j´avais testé Irrlicht ( un moteur 3D)... mais j´ai voulu m´aventuré sur autre chose OpenGL directement avec GLUT ! !!
c´est parce que j´ai du mal a me decider donc je te remercie de m´avoir indiqué ( comme ça j´essaie de pas commencer par un niveau trop haut).
franchement SDL si tu veux commencer moi j´ai trouver que c´était le top ! !!
irrlicht c´était juste pour voir ( j´avais vu un article dessus dans un magazine)...
OpenGL comme j´ai dit c´était juste pour " voir", que j´y touche pour connaitre un tout petit peu...
mais je pense quand meme que j´avais des bonnes bases quand j´ai commencé tout ca...