Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Fri Mar 29, 2024 6:04 am

All times are UTC




Post new topic Reply to topic  [ 36 posts ]  Go to page Previous  1, 2, 3  Next
Author Message
 Post subject:
PostPosted: Thu Jul 13, 2006 1:11 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Updated with a correct finalization for applications.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jul 16, 2006 1:50 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Ok, updated again. The finalization with OpenAL is now correct. Win32 DLL are a real pain ! ... :)

The new "hi-speed" link is: http://freeway.raydium.org/data/RaydiumSDK.zip


Top
 Profile  
 
 Post subject: windows sdk
PostPosted: Mon Sep 18, 2006 9:43 am 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Bonjour,

je viens de modifier très legèrement le sdk.

Il contient la dernière version de raydium (mise a jour svn du 18/9/2006)

et deux projets dev-cpp un pour creer la dll et un autre pour creer une appli.

Le ftp anonyme ne marche pas semble t'il je tiens l'archive a disposition.

Bonne journée
Jacques


Top
 Profile  
 
PostPosted: Mon Sep 18, 2006 9:09 pm 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Bonjour,

La compilation de raydium en utilisant code block et mingw intégré bloque.

Après moultes recherches, il apparait que la librairie ode distribuée dans le sdk est compilée avec un gcc 2.95.3-6 ou anterieur. Or manifestement cette librairie a besoin de fonction de libgcc: __pure_virtual... ces fonctions se trouvent dans la libgcc 2.95... mais plus dans les suivantes.

En essayant de compiler , plutot de linker raydium avec un gcc >3 ces references sont introuvables. On peu meme arriver a des trucs très bizarre en faisant un peu n'importe quoi avec les bibliothèques. M'enfin je ne le conseille pas.

J'ai donc essayé de recompiler ode avec gcc 3.4.4, ca n'est pas été concluant, en general un peu tout fini par traverser le trimesh.

J'ai remplacé ode par la dernière version 0.7, et linké en tant que dll.

Le resultat semble correct, l'executable raydium n'est plus alors que de 28k !

Test6 fonctionne correctement, pour le peu que j'ai testé.

Le tout compile (dll et appli) sous codeblock, avec mingw 3.4.4

Le tout est regroupé dans un "mini" sdk (oui je sais encore un ;o))

Plusieurs questions:

Pouvait-on faire autrement, plus simple en particulier ?

Le passage à gcc > 3 est il d'un interet quelquonque ?

Le passage à ode 0.7 est ce une bonne chose (si ca ne change rien à raydium) ?

Es tu interessé par ce nouveau sdk, si oui je peut essayer d'y inclure dev-cpp afin de remplacer l'ancien.
Que faut-il que j'y fasse pour qu'il soit d'une utilité quelquonque ?

Bonne journée

Jacques


Top
 Profile  
 
 Post subject:
PostPosted: Tue Sep 19, 2006 2:57 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Tout ça me semble tout à fait intéressant. Le seul point noir à l'heure actuelle est l'utilisation d'ODE 0.7. Un changement aussi important du moteur physique doit engendrer tout une série de tests (par exemple, des temps fait sous une ManiaDrive 1.2/ODE 0.5 sont t'ils comparables avec un ManiaDrive 1.2/ODE 0.7) et devrait se faire sur les différentes plateformes. Or une collision de symboles me gêne pour faire la migration aussi sous Linux (voir la mailing list et le bug que j'ai ouvert).

Je vais déjà commencer par jeter un oeil à ton nouveau SDK. Le FTP anonyme doit marcher, mais avec le nom "cqfd-corp.org" (sans le préfix "ftp.").


Top
 Profile  
 
 Post subject: Sdk
PostPosted: Tue Sep 19, 2006 6:55 pm 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Bonjour,

Les premiers tests, a l'oeil ne donnent pas de difference entre les deux Ode. Maintenant un vrai test s'impose.

Je pensais à une piste rectiligne avec un saut au milieu pour tester le moteur, entre différentes versions. Sans que le pilotage n'intervienne trop.

J'ai placé sur le ftp un sdk dervié du sdk officiel mais contenant les projets dev-cpp pour creer la dll et une appli. (sdk ouille)

Le mini sdk est le nouveau sdk.
L'ensemble des librairies glut,glaux,vorbis ... sont issues des devpack correspondant.
Ode est issu de la distribution windows de la 0,7 linké en dll.

Il y a deux projets code blocks un pour la dll, un pour l'appli.
L'executable se retrouve dans bin (avec les dll).

Deux questions subsidiaires:

Sur test6, compil a partir du sdk officiel, l'execution de kill_php() dans la console renvoie une erreur. Probleme de config, d'install ???

Sur un screenshoot (explication sur le rendu de l'eau) une image semble donner deux rendus de la scene. Serait-il facile d'ajouter un deuxième rendu de la scene dans le fenetre de raydium (ou une autre), quelles sont les pistes ?

Bonne journée
Jacques


Top
 Profile  
 
 Post subject: Nouveau sdk mania
PostPosted: Tue Sep 19, 2006 8:21 pm 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Bonjour,

Mania drive fonctionne avec le nouveau sdk.

Mes temps n'ont pas été postés (unofficial track ... )
Le php ne fonctionne peut etre pas ;o(

Les temps correspondent bien a ce que je faisait avec l'ancienne version.

Je vais faire des tests avec les deux build ancien et nouveau sdk.

A+
Jacques


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 20, 2006 7:20 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Tout est normal, le serveur refuse les temps qui sont effectués avec une version "custom" du jeu. Pour les tests, je pensais plus à un test d'invariance pour vérifier que le moteur se comporte exactement comme avec la version actuelle. N'oublions pas que presque 2 ans séparent ces deux version d'ODE et que des changements profonds ont été apportés entre temps (ainsi que des corrections de bugs, par exemple sur les collisions trimesh-sphere que ManiaDrive utilise énormément [roues]).


Top
 Profile  
 
 Post subject: Nouveau Sdk
PostPosted: Wed Sep 20, 2006 9:29 am 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Bonjour,

J'ai essayé mania drive build ancien et nouveau sdk.
Dans les deux cas pas de post au serveur possible. Bizzare ou erreur de config ici ? Seul le build officiel permet les posts ?

Je vais tenter de faire un test d'invariance.

Il me semble que la version 0.7 corrige pas mal de bugs,ajoute le support des cylindres et autre. Il ne me semblait pas qu'il y ait eu de profondes modif sur les trimesh sphere, mais je suis peut etre passé à coté.

Je n'arrive pas à importer cocobrix dans blender dernière version (ce n'est pas le seul d'ailleur). Cocobrix as t'il été réalisé sous blender ?


A+
Jacques


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 20, 2006 10:32 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Le numéro de version de ManiaDrive (en haut de mania_drive.c) doit être précisément "ManiaDrive 1.2" sans quoi le score est refusé. Cela explique probablement pourquoi l'ancien SDK ne passe pas (MD 1.1 j'imagine), ainsi que le nouveau (MD 1.2custom).
L'idée est d'éviter que les version "compilée à la main" du jeu ne puisse pas poster sur le site.

A propos de cocorobix.tri, le problème est lié a la "texture de détail" qu'il utilise (multitexturing).
Pour importer ce modèle, il faut enlever les infos de détail, avec un truc du genre :
Code:
sed 's/;ground.tga$//' cocorobix.tri > coco_uni.tri
sous Unix et un chercher/remplacer avec un quelconque éditeur texte sous windows (;ground.tga ne doit plus apparaître à la fin des lignes).


Top
 Profile  
 
 Post subject: Un resultat discutable !
PostPosted: Wed Sep 20, 2006 2:35 pm 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Bonjour,

Pour le test d'invariance V1:
Faisons tomber une boite sur la tete du bonhomme de cocobrix.
Ode faisant des tir aleatoire de l'ordre de traitement de point de collision je remet le generateur aléatoire a zero a chaque essai
dRandSetSeed(1234);

Ode 0.7: le test est très repetitif, la boite termine toujours au meme endroit et glisse ensuite doucement. Certains essais font arriver la boite a d'autres endroits, assez rarement.

Avec la version 0.5 la trajectoire est comparable cependant les points d'arrivée sont bien plus disparates. Il est alors très difficile de conclure.

Code:
if(raydium_key_last==1032)
    {

    int a,b;
    char name[255];
    a=raydium_ode_object_find("GLOBAL");
    b = raydium_ode_element_find ("box");
    if (b!=-1)
        raydium_ode_element_delete_name("box",1);

    //raydium_ode_name_auto("box",name);
    strcpy(name,"box\0");
    raydium_ode_object_box_add(name,a,0.1,RAYDIUM_ODE_AUTODETECT,0,0,RAYDIUM_ODE_STANDARD,0,"crate.tri");
    raydium_ode_element_move_name_3f(name,-32.92f,13.83f,24.83f);
    dRandSetSeed(1234);

    //raydium_php_exec("test.php");
    }

Voici le code correspondant plus un affichage sur l'osd de la position de l'element.

qu'en penses tu ?

Concernant cocobrix et blender c'est plus "bizarre"
voici le resultat dans mon blender ;o(

Image

Je vais refaire un test d'invariance sur le vehicule. Mais j'ai peur que le non repetitivité de ode ne permette pas de faire des conclusions completes.

A+
Jacques


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 20, 2006 7:26 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Il est vrai qu'ODE est très délicat à rendre déterministe, d'autant plus avec les trimeshs qui utilisent beaucoup de caches. Une conclusion temporaire est que la version 0.7 semble mieux se comporter sur ce point :) Le fait que les trajectoires soient proches laisse penser qu'il est possible d'imaginer un passage à ODE 0.7 dans le SDK windows en attendant le bugfix de la version Linux (ou en l'intégrant nous même au travers du configure, pourquoi pas).

Reste néanmoins à voir pour les sphères, autrement plus importantes pour ManiaDrive ;)

Le résultat que tu montres dans Blender ressemble beaucoup à un fichier TRI déformé (lignes manquantes, NAN, ...). Tu es sûr de ta manip' de chercher/remplacer ?


Top
 Profile  
 
 Post subject: Ode contre Ode
PostPosted: Wed Sep 20, 2006 9:57 pm 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Bonjour,

Je termine les tests de variance ou plutot d'invariance.

J'ai crée un terrain accidenté avec un petit saut.
Le vehicule est la clio de mania drive.
Dans le call back d'ode je donne des ordres precis au vehicule.
Code:
void ode_step(void)
{
int a;
    a=raydium_ode_object_find("WATURE");
    if (a!=-1) {
        timing++;
        if (timing == 400)
            raydium_ode_motor_speed_name("moteur",-300);
        if (timing == 2000)
            raydium_ode_motor_angle_name("direction",-M_PI/6);
        if (timing == 2100 )
            raydium_ode_motor_angle_name("direction",0);
        if (timing == 2300 )
            raydium_ode_motor_speed_name("moteur",-300);
        if (timing >2300)
            raydium_ode_motor_speed_name("moteur",0);

    }
}


A chaque image je dumpe la position du corps de la voiture dans un fichier texte.

dRandSeed est effectué avant chaque mesure.

Le premier test n'est pas conservé (temps de chargement des tri de la voiture).

Les resultats sont surprenant mais il faut surtout lire jusqu'a bout.

Ode 0.7
Image

Les resultats sont identiques sur trois tests.

En faisant plusieurs serie de tests on arrive au meme resultats quelque soit l'observation de la scene.

Ode 0.5
Image

Les resultats sont très proches, avec un peu plus de dispersion cependant.

Ode 0.5 vs 0de 0.7

Image

Les resultats se ressemblent fortement.

Ces test sont fait sans bouger le point de vue qui en fait pointe sur rien.

Si on deplace la camera les choses sont moins agréables !

voici la trajectoire de la voiture en X-Y

Image


Les premiers essais sont fait en visualisant la scene
les deuxieme sans reelle visualisation.

Les resultats ne sont pas trop différents, on observe que la direction de la voiture a l'issue du saut n'est pas tout a fait la meme.

Dans un cas elle fait un demi tour et se "cale" contre le tremplin, dans l'autre elle continue sa route.

Qu'en conclure, je ne sais pas trop.
Les points de vues n'etant pas strictement identiques ?

Par contre ode 0.7 ne semble pas trop souffrir de points de vues differents ce qui n'est pas le cas de 0.5.

Enfin le principal c'est que j'ai ma reponse concernant les temps de mutants fait par certains sur certains circuits. Il est evident que sur certaines machines, la trajectoire est favorisée en fonction de la puissance du processeur et de la carte video :lol: :lol:
Si mes temps sont mediocres c'est parce que ma machine n'est pas optimale !!! :lol: :lol:

Voila.
J'ai rejoué a maniadrive, avec ode 0.7 je n'ai pas trouvé de différence à la conduite.

Peut être puis je donner mon executable a un "fana" qui tourne sous windows qui pourra nous donner son avis sur la physique ?

A+
Jacques


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 21, 2006 7:10 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Avant tout, bravo pour tout ce boulot ! C'est particulièrement concret et instructif ... Les seuls infos qu'on avait à ce sujet était purement subjectives et empiriques. Tes tests pouvaient potentiellement montrer des écarts bien pires ;)

J'ai lu tout ça avec attention, mais du coup je ne suis pas certain d'interpréter correctement les résultats du dernier test. J'y vois deux "tendances" : l'une avec ODE 0.7 et l'autre avec ODE 0.5. Si effectivement tout deux semblent ne pas trouver la même solution, chacun trouve deux fois la même solution.

Quote:
Par contre ode 0.7 ne semble pas trop souffrir de points de vues differents ce qui n'est pas le cas de 0.5.


Du coup, cette conclusion me trouble ... Tu tires cela d'autres tests peut-être ?

PS : j'ai édité ton post. Ne link pas directement les images sur le FTP mais avec ce site : http://ftp.cqfd-corp.org/?M=D , sinon les images s'affichent très mal (voire pas du tout) et ma bande passante souffre ;)
Il peut être nécessaire d'attendre quelques secondes après un upload pour voir les images sur le site en question.


Top
 Profile  
 
 Post subject: ode contre ode
PostPosted: Thu Sep 21, 2006 8:26 am 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Bonjour,

Je vais essayer d'etre plus clair.

Tout d'abord le test:
Le vehicule est devant un tremplin, il accelere saute, tourne les roues et s'arrête. (voir le morceau de code).


On distingue deux comportement du vehicule:
- a l'issue du saut le vehicule fait 1/2 tour et se bloque contre le tremplin (x=-4 et y=-1)
- le vehicule fait un virage à 90° a l'issue du saut et s'arrête en bord de plateau (x=7, y ...)


Les premiers tests de repetitivité sont fait en observant pas la scene, l'influence du rendu est alors très faible, la charge du proc aussi.
J'ai alors comparé trois tests de ode 0.7 et trois tests de ode 0.5
Les resultats sont semblable les courbes se ressemblent.
Si on calcule la dispersion des trajectoires elle est beaucoup plus importante avec 0.5 que 0.7.

Par contre je n'avais aucun visualisation des trajectoires, d'un autre coté l'analyse etait objective !

Deuxième tests en regardant la scene, il faut bouger la camera avec souris + curseur (basé sur train.c).
A ce moment la les tests ne sont plus les meme:
Ode 0.5 la trajectoire est très souvent la 1 (bloqué contre le tremplin) cependant quelques fois la trajectoire est très différente.

Ode 0.7 la trajectoire est quasiement tout le temps la meme (la 2) en placant la camera au point d'arrivé de la voiture, elle s'immobilise assez précisement au meme endroit.

Donc en conclusion:

Ode 0.5 le resultat du test depend fortement du point de vue, qu'il s'agisse d'une modification majeur ou mineure de celui ci.

Ode 0.7 le resultat du tests depend du point de vue, en cas de modification majeure. Mais ne depend pas de modifications mineure du point de vue.

Sur le cas de maniadrive, j'aurais tendance a dire que 0.7 serait plus egalitaire puisque le point de vue est a peu pres le meme pour tout le monde.

Est ce plus clair ?

Sinon je detaillerai encore.

Je vais essayer de faire des tests en fonction du point du vue on verra bien.


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

All times are UTC


Who is online

Users browsing this forum: No registered users and 26 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