Aurais besoin de tuyaux competant en openGL

Aurais besoin de tuyaux competant en openGL - C - Programmation

Marsh Posté le 20-02-2006 à 17:38:12    

Salutations,
 
Voila le topo:
Je dois réaliser une applie en openGL: déformation d'objets 3D par des méthodes d'interpollation,
et je dois bien avouer que je tourne en rond comme pas permi.
L'idée c'est de définir des points de départ, des points d'arrivé (autant l'un que l'autre), et deplacer mes points de départ vers mes points d'arrivé...
 
J'ai donc essayé la maniére progressive: déplacer un point, j'y suis arrivé....En deplacer deux.....pas moyen....alors j'imagine pour plus...
le truc, c'est que je pense qu'il faudrait implementer un algo avec des tableaux de points et compagnie;
Mais je dois bien admettre que je suis pas une lumiére en openGL, et j'arrete pas de tournen en rond avec un bouquin de 700 pages (genre le pavé aux éditions plom: c'est lourd !)
 
Si quelqu'un est déjà passé par là et puisse me conseiller sur les démarches, ou des methodes à favoriser, j'suis preneur !!
 
Merci d'avance à toute réponse potentielle  

Reply

Marsh Posté le 20-02-2006 à 17:38:12   

Reply

Marsh Posté le 20-02-2006 à 18:33:01    

Salut,
Ce n'est pas un problème avec OpenGL mais un problème d'algorithmique.
A mon avis la méthode très simple c'est un vector de vertices en position initiale, un vector de vertices pour la destination (visiblement tu les connais)
les deux vecteurs couplés (chaque indice de chaque vecteur représente le meme vertex aux instants extrèmes),  
ensuite tu determine le nombre d'image intermédiaires que tu veux. Tu te défini une variable d'avancement. Et pour un interpolation linéaire tu fais une petite règle de trois à chaque dessin de ta scène genre
 
pos_courante = avancement*(pos_fin - pos_debut)/nb_images_intermediaires + pos_debut
 
avancement allant de 0 à nb_images_intermediaires
 
Je lâche ça a l'arrache, aucune idée si c'est le bon calcul et à mon avis tu peux faire mieux


Message édité par caddie le 20-02-2006 à 19:09:24
Reply

Marsh Posté le 20-02-2006 à 22:41:33    

bah si t'arrive a en deplacer un, mais que ca cale au niveau du deuxieme, ca peut venir de tes matrices....
 
--> tu fais une modification a ta matrice pour deplacer ton premier point
--> tu commence la modification du deuxieme avec la matrice du premier....
 
donc pense a faire des glLoadInit() regulierement aux bons endroits ;-)
 
regarde aussi pushMatrix et popMatrix, ca pourrait te servir.
 
et si jamais tu veux des bons tutos en openGl, regarde le site de nehe (tappe nehe et openGl dans google), les tutos sont tres complets, bien commentes, et disponibles pour de tres nombreux langages (en bas de chaque tuto).
 
bon courage

Reply

Marsh Posté le 21-02-2006 à 00:07:19    

Pas tout à fait !!!
En fait pour déplacer mes points j'utilise des fonctions qui vont me calculer un décalage à chaque nouvel appel en fonction des point de depart et d'arrive, j'utilise pas de matrice pour les déplacements...
 
Mais pour plusieurs points, j'utilise des tableaux de sommets (glEnableClientState()) et j'accede aux elements par glArrayElement()...
Mais le probleme c'est que mon premier ou dernier point est à l'infini...
 
Mais merci pour le truc des matrices, c'est vrai que ca peut être une idée si je bloqu trop...

Reply

Marsh Posté le 21-02-2006 à 00:07:37    

Pas tout à fait !!!
En fait pour déplacer mes points j'utilise des fonctions qui vont me calculer un décalage à chaque nouvel appel en fonction des point de depart et d'arrive, j'utilise pas de matrice pour les déplacements...
 
Mais pour plusieurs points, j'utilise des tableaux de sommets (glEnableClientState()) et j'accede aux elements par glArrayElement()...
Mais le probleme c'est que mon premier ou dernier point est à l'infini...
 
Mais merci pour le truc des matrices, c'est vrai que ca peut être une idée si je bloqu trop...

Reply

Marsh Posté le 21-02-2006 à 00:11:51    

oups...y'a eu le bûg !!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed