Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Thu Mar 28, 2024 3:20 pm

All times are UTC




Post new topic Reply to topic  [ 26 posts ]  Go to page Previous  1, 2
Author Message
 Post subject: collision ray tri
PostPosted: Wed Oct 12, 2005 2:58 pm 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Pour le tri il s'agit du a.tri de test6 si je ne me trompe pas.

J'ai fais le min sur 10 images successives et j'ai encore des erreurs.
Pour info, le ray est accroché au vehicule, et je cherche les collisions avec les bordures de la piste.
Le rayon traverse allègrement la bordure, mais pas tout le temps.
J'enverais bien un screenshoot mais je sais pas faire.
Code:
  n = dCollide (o1,o2,N,&contact[0].geom,sizeof(dContact));
 
  if (dGeomGetClass(o1)==dRayClass){
  if (fabs(contact[0].geom.depth)<0.1) return;                                   
  dGeomRaySetLength(o1,min(fabs(contact[0].geom.depth),dGeomRayGetLength(o1)));
      return;}
  if (dGeomGetClass(o2)==dRayClass){
  if (fabs(contact[0].geom.depth)<0.1) return;                                   
  dGeomRaySetLength(o2,min(fabs(contact[0].geom.depth),dGeomRayGetLength(o2))); 
       return;} 

Voici le code de collision, je filtre les collisions trop proches, pas propre mais ca marche.
Et ensuite je prends le min des depth.
Ca marche nickel avec le mur exterieur par exemple,
Sinon on vois le rayon passer de temps en temps (1 frame sur 2 ou sur 4) a travers les objets.
Dans la mailing liste d'ode, ils parlent de l'orientation des triangles des trimesh. La scene est-elle bien orientée ?
Sinon les collisions sont bonne et pas bonne a des endroits très très proches.
Je peux t'envoyer le code si tu veux.
A+
Jacques


Top
 Profile  
 
 Post subject:
PostPosted: Wed Oct 12, 2005 3:07 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Envoie le code si tu veux (utilise le ftp anonyme de cqfd-corp.org par exemple). Pour faire une capture d'écran, fait "SHIFT+²". Ca va te générer un fichier TGA du genre "raycap...". Je vais faire mes propres expérimentations dès ce soir, peut être vais-je en apprendre plus. Les triangles de "a.tri" (qui est en fait "cocorobix.tri") sont tous correctements orientés, c'est une certitude (ça nous a posé pas mal de problèmes lors du passage aux trimeshs d'ODE). Ta voiture serait projetée très fort, sinon :)


Top
 Profile  
 
 Post subject: du grain
PostPosted: Wed Oct 12, 2005 3:30 pm 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Voila j'ai mis raytest.rar et une capture d'ecran dans le ftp anonyme.

Attention le ray ne passe pas toujours a travers, j'ai fais une capture au bon moment.
Il faut appuyer sur 'espace' pour creer le capteur (ray)
la distance est affiché en bas a droite
la vue utilisée est 'F4'

A+
Jacques


Top
 Profile  
 
 Post subject:
PostPosted: Wed Oct 12, 2005 3:37 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Tu n'utilise que le premier contact ! (contact[0].geom.depth devrait être contact[i].geom.depth et ce dans la boucle for qui est ligne 145 dans ton odex.h)


Top
 Profile  
 
 Post subject: les rayons
PostPosted: Wed Oct 12, 2005 7:24 pm 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Si c'est cela j'ai honte.
Je me suis basé sur la doc ode, il me semble qu'un ray genère 1 contact.
Je verifie de suite.
A+


Top
 Profile  
 
 Post subject: pas ca encore
PostPosted: Wed Oct 12, 2005 7:29 pm 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Bon ben j'ai honte ...
Code:
    for (i=0; i<n; i++)
   {   
   e1=dGeomGetData(contact[i].geom.g1);
   e2=dGeomGetData(contact[i].geom.g2);

   if(e1==NULL || e2==NULL)
       continue; // Deleted, or not one of our elements
      if (dGeomGetClass(o1)==dRayClass){
      if (fabs(contact[i].geom.depth)<0.1) continue;                                   
      dGeomRaySetLength(o1,min(fabs(contact[i].geom.depth),dGeomRayGetLength(o1)));
          continue;}
      if (dGeomGetClass(o2)==dRayClass){
      if (fabs(contact[i].geom.depth)<0.1) continue;                                   
      dGeomRaySetLength(o2,min(fabs(contact[i].geom.depth),dGeomRayGetLength(o2))); 
           continue;} 


Merci pour le coup de main !!!
A+


Top
 Profile  
 
 Post subject:
PostPosted: Thu Oct 13, 2005 6:29 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Y'a pas de raison d'avoir honte, tout le monde a écrit des bourdes dans ce genre :)
Accessoirement, je suis arrivé à un stade intéressant de l'intégration des ray dans le moteur, hier soir, il me reste encore à paufiner les fonctions "utilisateur" avant de commiter le tout. Après tests et réflexion, je n'ai pas implémenté les rayons en tant que primitives, mais en tant que "compléments" des autres primitives (il est donc possible d'associer un rayon à une box ou une sphère).
Je vais tenter de terminer ça ce midi.


Top
 Profile  
 
 Post subject: Raydium
PostPosted: Thu Oct 13, 2005 3:39 pm 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Raydium à la fête de la science a Clermont Ferrand ...

La demo a tournée toute la journée, sans soucis.
Elle consistait à faire de la commande référencée capteur. L'objectif etant de faire suivre un mur à un vehicule équipé d'un télé metre.
La régulation etait faite à partir d'un telemètre ultra son commandant un petit vehicule radio commandé. Le tout implanté sur un micro-controlleur Renesas M32.
La demonstration de l'application à utilisée le Raydium, pour la simulation du comportement physique du vehicule et le rendu de la scène.

Beaucoup d'etudiants plus ou moins jeunes on appréciées la demonstration, préférant cependant faire faire un looping au vehicule plutot que de règler le correcteur.

Merci pour tout.
Accrocher les rayons a des objets me semble une bonne idée, je preche pour ma paroisse mais ce serait bien que l'on puisse definir si il doit ou non etre affiché.

Maintenant je vais regarder l'appli reseaux, pour que les manips puissent se faire avec plusieurs vehicules.

A+
Jacques


Top
 Profile  
 
 Post subject:
PostPosted: Thu Oct 13, 2005 3:58 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Je ne savais pas que c'était si tôt !
Merci beaucoup de ton retour, ça fait très plaisir de voir Raydium utilisé de cette façon :) Si tu disposes de photos ou de vidéos sur ce projet (et que ça ne te gêne pas que je publie le tout), je serais très intéressé !

Encore merci de ton retour d'expérience.

PS : le commit traîne, mais je n'ai eu que peu de temps aujourd'hui :)


Top
 Profile  
 
 Post subject: Retour
PostPosted: Thu Oct 13, 2005 7:10 pm 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Et oui c'etait aujourd'hui, ce qui explique le ruch et les nuits un peu courtes !

Quelqu'un a fais des photos j'ai peur que ca ne soit pas top, j'en ferais pendant les tp sinon.
Je ne vois pas comment je pourrais refuser que tu publie quelque chose, raydium etant open source c'est la moindre des choses.
Je vais continuer a bosser sur Raudium, peu etre un peu plus cool.
Et si il faut un coup de main ponctuellement je peu aussi aider.

Merci surtout pour ton aide.

A+
Jacques


Top
 Profile  
 
 Post subject:
PostPosted: Fri Oct 14, 2005 10:01 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
En ce qui concerne les photos, tout m'intéresse ! :) Au minimum pour me faire une idée de ce à quoi ressemble ton projet, au mieux pour les placer sur le site web du projet.

J'ai commité le support des rayons, avec (dédicace ;) ) la possibilité de les afficher. Je vais mettre la doc à jour sur le wiki.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 26 posts ]  Go to page Previous  1, 2

All times are UTC


Who is online

Users browsing this forum: No registered users and 11 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group