begin process at 2012 05 30 04:07:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

Matrix OpenGL


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

Matrix OpenGL

dimanche 22 janvier 2006 à 10:11:03 | Matrix OpenGL

Alcantornet

Hello World,

Dans mon programme openGl je place mes objet gâce aux commandes glTranslate glRotate et glScale mais après avoir fait plein de rotation et de translation l'objet s'affiche bien ou je veux, mais je voudrais s'avoir ou`il s'affiche pour faire la détection de collision.

J'ai imaginai la chose suivant:

// Applique les transformation OpenGL
glPushMatrix();
      glTranslatef(player.px,player.py,player.pz);
      glRotatef(player.rot_y,0,1,0);   
      glRotatef(player.ix,1,0,0);
      glRotatef(player.iz,0,0,1);
      glRotatef(player.rot_tow-player.rot_y,0,1,0);
      glRotatef(player.rot_can,1,0,0);
      glCallList(player.id_list+1);             // Objet
  glPopMatrix();

// On refait les mêmes transfo avec des fonction perso
clReset();
  clTranslate(player.px,player.py,player.pz);
  clRotate(0,player.rot_y,0);  
  clRotate(player.ix,0,0);
  clRotate(0,0,player.iz);  
  clRotate(0,player.rot_tow-player.rot_y,0);
  clRotate(player.rot_can,0,0);
  clRotate(90,0,0);

// Puis obtient sa position
printf("x:%i y:%i z:%i\n",clGetPosX(),clGetPosY(),clGetPosZ());


Mais je n'arrive pas à faire les fonction clRotate et clTranslate correctement et ce que qqun peut m'aider svp ??


dimanche 22 janvier 2006 à 11:34:49 | Re : Matrix OpenGL

luhtor

Tu n'as pas besoin de faire calculer opengl, si tu calcul toi meme les transformations.
Si tu fais tes calculs sur une matrice M. Pour l'affichage, tu peux utiliser glMultMatrix:
glPushMatrix()
glMultMatrix(M); // M une matrice 4x4
    TRACE TON TRUC;
glPopMatrix();

et  voila, comme ca tu fais l'économie a opengl de calculer ton truc et ca te permet de voir si ta matrice M est correct. Puisque si elle ne l'est pas, l'objet s'affichera n'importe ou.
dimanche 22 janvier 2006 à 13:04:46 | Re : Matrix OpenGL

Alcantornet


merci pour l'info de performance, mais justement je n'arrive pas à faire une matrice moi même.

dimanche 22 janvier 2006 à 13:58:47 | Re : Matrix OpenGL

luhtor

Bas commence juste à faire une matrice de translation, que tu multiplies à celle d'opengl, et tu regardes, si ton objet se translate correctement.

Mais ton problème est un pb de maths ? tu vois pas cmt construire la matrice ou juste que ce que tu fais ne fonctionnes pas ?
Dans tous les cas, post ici la facon dont tu construis tes matrices.
dimanche 22 janvier 2006 à 18:42:40 | Re : Matrix OpenGL

Alcantornet

j'ai fait plein de recherche sur la matrice et je me suis rendu compte que je pouvait prendre celle que opengl calcul grâce à glGetFloatv(GL_MODELVIEW_MATRIX, *matrix); cela m'évite de calculer les transformation puis dans la matrice je récupère les translation. x=matrix[3][0] y=matrix[3][1] z=matrix[3][2], mais il me reste à trouvée les rotations.


dimanche 22 janvier 2006 à 18:43:16 | Re : Matrix OpenGL

Alcantornet

voir http://www.linuxgraphic.org/section3d/openGL/didacticiels/didac3/didac1.html


dimanche 22 janvier 2006 à 19:36:06 | Re : Matrix OpenGL

luhtor

La matrice que openGL calcul, tu peux la récupérer oui. Apres tu multiplie les points de ton objet par cette matrice, et ca te donne ses coordonnées dans l'espace apres voir subi la tranformation.
dimanche 22 janvier 2006 à 19:57:09 | Re : Matrix OpenGL

Alcantornet

j'aurais besoin de ressortir les rotations x y et z d'une matrice je pense qu'il faut utiliser atan(qqch) ??



dimanche 22 janvier 2006 à 21:30:35 | Re : Matrix OpenGL

luhtor


Essai de trouver un autre moyen que d'extraire des angles de rotations. C'est la merde apres :)
et comme j'ai éviter ce genre de chose quand j'en ai eu besoin, j'y  connais rien.

lundi 23 janvier 2006 à 09:31:58 | Re : Matrix OpenGL

Alcantornet

Sais-tu alors appliquer une matrice à un point ?? point * matrice ??? stp.



1 2

Cette discussion est classée dans : opengl, player, rot, glrotatef, clrotate


Répondre à ce message

Sujets en rapport avec ce message

Opengl [ par bat67000 ] Salut,jpige trop pas...(vive DX koi....)Pourquoi sous opengl faut faire glTranslatef puis glRotatef pour obtenir ce que l'on veu....(et encore)alors q procedure glrotatef dans opengl.dll [ par pit976 ] Bonjour a tous ! je debute avec opengl, mon bute est tout simplement de réussir à afficher ne serait ce qu'un point dans une fenêtre. J'ai donc suivi changement de base OpenGL (Matrices) [ par cppdupdup34 ] ami coder j'ai une requete !!je cherche desesperement a faire ce qu'openGL fait sans l'ecrirechanger de base de facon successivequand on fait un glRot Aide sur l'installation d'opengl [ par anek971 ] Bonjour a tous, ben j'utilise devc++ 4 et j'ai décidé de commencer l'opengl, le prob c'est que comme ecris sur ce forum j'ai installé opengl32.dll ,gl DevIL + OpenGL = problème [ par Pamaury ] Salut tout le monde,j'ai un gros problème : j'essaye de faire marcher DevIL avec OpenGL et pour l'instant j'ai eu que des problèmes jusqu'au moment où Pixels et transformation [ par tintin72 ] Bonjour,j'aimerai savoir s'il y a une correspondance entre les transformations en OpenGL et les pixels.Je m'explique:ex // code OpenGL qui dessi Opengl et DevIL [ par xarier ] Hi everybody ma questipon est la suivante: comment faire ca avec devil [ pour le dernier parametre ]glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]- Equivalence Direct Input en OpenGL [ par tintin72 ] Bonjour,Je programme un petit jeu en OpenGL et je me sert de Direct Input pour la gestion des touches du clavier. J'aimerai cependant savoir s'il exis opengl glText2d () [ par mat74 ] salut a ts , je suis en train de faire un tetris en opengl , il est presque fini , mais j'ai un petit pb avec l'ecriture .qd je lance le jeu l'ecritur comment avoir opengl.dll [ par klh ] j'ai fait un programme et j'ai inclu toutes les bibliothèques mais lors de l'execution un message s'affichera opengl.dll est introuvable


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 : 1,388 sec (3)

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