Re: [ODE] I´m totally unhappy with ODE ... Please Help me

arturapps arturapps at gmail.com
Sun Dec 17 05:51:24 MST 2006


I´ve just discovered that my problems are the rotations I apply to my geoms.
I have no problem with translations but just with rotations . 
I ´m doing rotations by computing the rotation matrix from Euller angles and
than using dGeomSetRotation . 
I also noticed that dGeomSetRotation by matrix is very slow for complex
geoms. 

That is the function I use to compute the matrix : 

bool CollisionSystem::ComputeRotMatrix(double rotX, double rotY, double
rotZ, dMatrix3 & matrx)
{

   /* Euller */

   dReal alfa;
   dReal beta;
   dReal gama;


  
   alfa = rotY;

  
   beta = rotZ;

  
   gama = rotX;


  
   matrx[0] = cos(beta)*cos(gama);

  
   matrx[1] = sin(alfa)*sin(beta)*cos(gama) + cos(alfa)*sin(gama);

 
   matrx[2] = - cos(alfa)*sin(beta)*cos(gama) + sin(alfa)*sin(gama) ;


  

 
   matrx[3] = - cos(beta)*sin(gama);

  
   matrx[4] = - sin(alfa)*sin(beta)*sin(gama) + cos(alfa)*cos(gama);

 
   matrx[5] = cos(alfa)*sin(beta)*sin(gama) + sin(alfa)*cos(gama);



   matrx[6] = sin(beta);

  
   matrx[7] = -sin(alfa)*cos(beta);

   
   matrx[8] = cos(alfa)*cos(beta);

   return true;
}






Lode Vanacken wrote:
> 
> I just recently replaced our collision engine with ODE as a first step to
> move towards physics integration. I am also using GIMPACT and I don't 
> have any problems at all.
> 
> For drawing, what are you drawing? Are you using the ODE geoms or you 
> own structure? I would
> suggest to draw both, this way you can see if they are aligned or not. I 
> had problems with my vertex stride
> and so on, I know you have tested it in an example, but to make sure and 
> as you are rather desperate I would
> try this. Some example code for drawing to get you started:
> 
>> for(int j = 0; j < dGeomTriMeshGetTriangleCount(geomObj); j++)
>> {
>>                 dVector3 p1, p2, p3;
>>                 dGeomTriMeshGetTriangle( geomObj, j, &p1, &p2, &p3 );
>>                 //DrawTriangle Code
>> }
> 
> 
> Greetings,
> Lode
> 
> arturapps wrote:
> 
>>Hi people: 
>>
>>I´m working on a game that doesn´t need Real time physics  but needs
>>Trimesh-Trimesh colision Detection . 
>>
>>The game is a kind  of spaceship race that takes place on a  quite large
>>enviromment composed of trimeshes.
>>
>>I´m  experiencing all kind of problems with my collisions : Since false
>>collisions , until  missed collisions. Sometimes  the near callback is not
>>triggered even if two trimeshes visually collide.
>>
>>I examined ODE´s documentation and figured out that  it´s possible to use
>>just the colision detection capabilitys of ODE.  So my sojtware does not
>>create the "word"  and any body   for physics  processing. The ODE´s
"step"
>>of simulation is not called.  The software just create the colision space 
>>and associate   geoms ( trimeshes ) to  the game entitys . 
>>
>>That´s the way the game works: 
>>
>>Create collision space
>>Create Entytys and associated geoms ( trimeshes) 
>>
>>(Loop) 
>>{
>>Call Entity´s IA  // Each entity decide about its next movement and then
>>modify it´s position and  orientation
>>modify entity´s geoms // based on entity´s  position and orientation
>>call colision detection (dSpaceCollide) 
>>Draw 
>>}
>>
>>(nearCallback) 
>>{
>> call dcollide  to get contact points between the colision pair
>>iinform the entitys associated with the colision geoms , about the
colision
>>points 
>>//In the next loop the Entity´s IA will do something as colision response
>>}
>>
>>
>>Well ... first of all , I´d like to know if is that aproach correct. IS
>>there any problem using just colilision detection system  of ode ?
>>
>>By the way : I´m using  the version of ODE , that uses GIMPACT instead of
>>OPCODE. I downloaded  this version at :
>>http://sourceforge.net/project/showfiles.php?group_id=176661&package_id=208772&release_id=458193
>>
>>In second place : I´d like to describe some tests I made to be sure that
my
>>trimeshes and trimesh creation process are correct: 
>>
>>I  changed the test_moving_trimesh example that comes with the 
ODE-Gimpact
>>project, in order to create the trimeshes from my model file format ,
>>instead of creating the "bunnys" on the code.  I didn´t changed the way it
>>does trimesh creation because it was the same way I do it . So I could
>>notice that my trimesh models work very well . they are displayed
correctly
>>and collyde very well.  So I discarded problems about vertex order or
normal
>>orientation. 
>>
>>In my software I don´t call dGeomTriMeshSetLastTransform in order to
update
>>temporal coerence for the Geoms. 
>>I removed all calls of  dGeomTriMeshSetLastTransform from the
>>test_moving_trimesh example  and than I noticed that it does not afect
>>colisions , but only the quality of physics simulation. 
>>
>>So I don´t know what I can do next  in order to understand my problem ? 
>>
>>Help me please !!!
>>
>>
>>  
>>
> 
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode
> 
> 

-- 
View this message in context: http://www.nabble.com/Im-totally-unhappy-with-ODE-...-Please-Help-me-tf2829364.html#a7915632
Sent from the ODE mailing list archive at Nabble.com.




More information about the ODE mailing list