Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
944 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Fonction qui réagit au cout

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fonction qui réagit au cout

n°2125289
Terminapor
I'll see you rise.
Posté le 08-02-2012 à 01:22:49  profilanswer
 

Bonsoir :D  
 
ça fait un petit moment que je m'arrache les cheveux sur un bug extrêmement bizarre..
 
J'ai un mesh en 3d sur openGL que j'anime, le truc c'est qu'il est tout déformé (les weights sont foutu en l'air), le problème semble venir de cette fonction :
 

Code :
  1. void SkeletalMesh::prepareMesh(const md5_joint*M)
  2. {
  3.     for (int i=0;i<mesh.vertexCount;++i)
  4.     {
  5.         vec3f final_vert = {0.0f,0.0f,0.0f};
  6.         for (int j=0;j<mesh.vertexList[i].weight_count;++j)
  7.         {
  8.             const md5_weight* w = &mesh.weightList[mesh.vertexList[i].weight_start + j];
  9.             const  md5_joint*joint = &M[w->bone_id];
  10.             vec3f trs={0,0,0};
  11.             quat_rotate_point(joint->rotation,w->position,trs);
  12.             final_vert.x +=  (joint->position.x +trs.x)*w->bias;
  13.             final_vert.y +=  (joint->position.y +trs.y)*w->bias;
  14.             final_vert.z +=  (joint->position.z +trs.z)*w->bias;
  15.         }
  16.         mesh.vertexArray[i].position.x = final_vert.x;
  17.         mesh.vertexArray[i].position.y = final_vert.y;
  18.         mesh.vertexArray[i].position.z = final_vert.z;
  19.     }
  20. }


 
(mesh est défini en private dans la class SkeletalMesh, c'est une structure)
 
Le truc, c'est que si je rajoute un cout juste au dessus des "final_vert +=", ben la mise est changé..
En gros, "cout<<endl;" fera que mon mesh est tout ecrasé, et cout<<" " répare le bug :heink:  
 
Je sais pas quoi mettre comme lignes supplémentaire à indiqué à côté de cette fonction, étant donné que j'ai fichtrement aucune idée de la source du problème :pt1cable:  
 
Merci pour votre aide !


---------------
Perhaps you don't deserve to breathe
mood
Publicité
Posté le 08-02-2012 à 01:22:49  profilanswer
 

n°2125301
shaoyin
Posté le 08-02-2012 à 09:29:40  profilanswer
 

En désespoir de cause et vu l'étrangeté du problème, je suis tenté de dire que la source du bug est ailleurs, peut-être une anomalie dans la gestion de la mémoire ?
Tu as la possibilité de passer un outil d'analyse dynamique (type valgrind) sur ton programme ?

n°2125382
Terminapor
I'll see you rise.
Posté le 08-02-2012 à 13:17:22  profilanswer
 

Valgrind est dispo que sur linux, et manque de bol j'suis sur windows :/

 

J'ai pas trouvé le code source de MPatrol, jvais chercher pour Purify :D

 

Au pire j'peux tenter de ré-écrire tout mon code, mais je doute que ce soit utile..

 

Ah, ben ça marche, j'ai repris un ancien code et virer les différence qu'il y avait avec le nouveau :sweat:

 

Non en fait c'est pire que ça, j'avais carrément zapper de récupérer la composante "w" en calculant un conjugué de quaternion, mais je suis pas capable de savoir pourquoi le cout modifiait ça :D


Message édité par Terminapor le 08-02-2012 à 13:36:10

---------------
Perhaps you don't deserve to breathe

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Fonction qui réagit au cout

 

Sujets relatifs
aide sur fonction excelAfficher une UserForm en fonction de la valeur de "Listindex"
(re)codage de la fonction printf()Definition d'une variable en fonction d'une autre
Transferer données précises vers une autre table en fonction d'un IDfonction d'affichage d'un tableau 2 dimensions
[C#/C] Dllimport et pointeur de fonctionpile , la fonction qui depile ne marche pas [résolu]
Changer un select en fonction d'un choix...javascript FONCTION EVENT SOUS IE ET FIREFOX
Plus de sujets relatifs à : Fonction qui réagit au cout


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR