Code source complet -Collision 3D et réponse

Généralités sur la programmation 3D
Polo
Messages : 612
Inscription : sam. 03/juil./2004 20:14

Message par Polo »

Autant pour moi, j'avais fait une connerie, en fait ça marche :oops:
Bon boulot, d'ailleurs !
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Bizarre , voila la version complète que j'utilise avec les dll .Le fichier fait 1Mo.
là je ne vois pas d'où ça vient, tu n'as pas de souci avec les exemples shadow ou meshmanuel de Fred ?

http://perso.wanadoo.fr/comtois/sources ... 3DBeta.zip

[EDIT]

Ok , je préfère ça , sinon je ne comprenais plus rien :)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Polo
Messages : 612
Inscription : sam. 03/juil./2004 20:14

Message par Polo »

Désolé de t'avoir fait envoyé le fichier pour rien, c'est ma faute a vouloir être trop pressé :oops:
En tout cas, c'est de mieux en mieux, les collisions sont très bien maintenant, à part, comme tu l'as mentionné, dans les angles, dès qu'il y a plus de 2 triangles en même temps en fait, non ?
En tout cas bravo, j'espère voir la suite :)
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

j'espère voir la suite
Ouais ben la suite, je crois que ça sera le code source .
Le temps de le reprendre , de le commenter , et je le colle ici.
En espérant qu'en s'y mettant à plusieurs , y'en aura bien un qui trouvera ce qui cloche pour que ça ne tremble plus !

Donc au plus tard à la fin de l'année , mais sûrement avant.

Si c'est toi qui trouve le problème j'espère que tu posteras le correctif :)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Je n'ai pas de problème à la jointure des triangles au sol?! Tu parles de la collision? Par contre les angles des murs sont parfois visibles (ligne noire); ça vient en fait d'un problème de taille de texture je crois; puisqu'on est obligé de donner un nombre flottant, ça doit dépasser de temps en temps. C'est un peu pour ça que j'ai laissé tomber ogre, en plus du fait que chez moi c'était toujours en 16 bits, même quand je demandais du 32.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

djes a écrit :Je n'ai pas de problème à la jointure des triangles au sol?! Tu parles de la collision?
Oui je parle des collisions , si je mets une gravité importante , je peux même buter sur la jointure entre deux triangles au sol.
Alors que je calcule d'abord la position à atteindre avec le vecteur vitesse sans tenir compte de la gravité , donc je devrais passer au dessus de la jointure (c'est d'ailleurs cette méthode qui permet de monter les escaliers), et ensuite je calcule la nouvelle position en tenant compte uniquement de la gravité.
Puisque ça fonctionne pour les escaliers , je suppose que ça vient des approximations dans les calculs avec les flottants.
Pour savoir si je me déplace parallèlement à un triangle je calcule le produit scalaire Normale du plan * Vecteur vitesse , et si le résultat est nul alors les vecteurs sont perpendiculaires ,donc le vecteur vitesse est parallèle au plan , je pense qu'il va falloir que je surveille le résultat de ce calcul . Ou que je fasse un encadrement genre
If ProduitScalaire>-0,005 and ProduitScalaire<0,005 alors
Déplacement parallèle au plan
Endif
Bref c'est plein de petits détails comme ça , à revoir ou à retoucher.

Par contre les angles des murs sont parfois visibles (ligne noire)
ça vient de ce que je calcule un angle pour positionner mes murs.
C'est plus un problème de positionnement que de texture.
En fait j'ai repris ce vieux code pour faire le décor

http://purebasic.hmt-forum.com/viewtopic.php?t=24

S'il était possible de faire du multitexturage ,je n'aurais fait qu'un seul mesh pour le décor , et je n'aurais pas eu à calculer des angles , j'aurais pu positionner chaque vertex exactement à sa place ,et on ne verrait pas les lignes noires ,
J'attends de voir si ça sera possible avec la V4 :)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Ok!

C'est clair qu'il nous manque plusieurs trucs pour faire de la 3d "facilement" sans avoir à recoder des trucs ou utiliser des libs : le support du 64 bits semble capital, pour la précision des flottants, par exemple avec les matrices; le support de l'alpha; le support de directx 9 (et de ses ascendants), etc.
Fred travaille là dessus et il va nous trouver quelque chose de bien réfléchi qui nous comblera, j'en suis sûr!
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

YAhouuououououou !!!
Je suis trop content , j'ai enfin trouvé mon erreur !!
ça ne tremble plus et je passe correctement les jointures au sol.
J'étais en train de rédiger un tutoriel sur les collisions , et arrivé au chapitre résolution d'une équation du second degré , j'ai trouvé une solution intéressante sur wikipédia

http://fr.wikipedia.org/wiki/%C3%89quat ... degr%C3%A9

Voir le chapitre "Gain de précision" en bas de l'article .
En voyant ça , j'ai voulu tester , et comparer les résultats avec la procédure que j'utilisais.Et je me suis rendu compte que ma procédure ne retournait aucune valeur , alors qu'elle m'indiquait bien qu'il y avait une solution pour résoudre l'équation , en fait , j'avais fait une erreur sur un pointeur.
Et du coup , je récupérais une mauvaise valeur :?
J'ai corrigé le pointeur , et maintenant , ça fonctionne nickel :D

Bon j'ai encore pas mal de boulot pour rédiger le tutoriel , et commenter le code, mais je préfère donner un code qui fonctionne , j'étais pas satisfait du précédent .

En attendant encore une petite démo , je sais que ça fait plaisir à Chris mes démos :)
Il n'y a pas de ninja ni de robot ,c'est une vue à la première personne.
Touche [F1] pour afficher la map en 2D.
Bouton gauche de la souris pour tirer.
la balle ne va pas vite ,c'est pour me laisser le temps d'aller vers la cible et de vérifier que la balle atteint bien l'objectif visé ( une tache sur un mur , ou un truc facilement repérable).

Le calcul de l'angle est correct si on ne tire pas trop haut ni trop bas, je vais voir pour améliorer ça par la suite. Ensuite , il n'y aura plus de balle , juste un lancé de rayon , si le rayon touche sa cible , elle explose ,et on en parle plus :)

http://perso.wanadoo.fr/comtois/sources/VisuMap3D2.zip

Je suis curieux de savoir si ça rame chez vous ou pas , vous avez quel FPS ?
Chez moi il est à 75 .
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

40 FPS :

AMD athlon 1,4Ghz
1Go RAM
W2KSP4
NVIDIA GeForce FX 5500 128 Mo
Ecran 1280x1024 (32bits) 85Hz
DirectX 9.0c

et, de temps en temps, ca saccade :)
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Houla 40 seulement ?

il est temps d'optimiser :?

et quand tu dis que ça saccade , c'est quand tu es en collision dans un angle , ou n'importe où ?

Tiens j'en ai profité pour changer les textures et mettre un ciel , c'était mieux avec la skyBox() mais y'a un bug d'affichage avec la version beta d'ogre :?
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

ca saccade (ca fige et reprend tout de suite après) n'importe ou ! :?
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

60 FPS

P4 2,6 Ghz
256 Ram
Ati radeon 9200 pro
winxp
directx9c
resolution 1152x864 / 32bits
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

flaith a écrit :ca saccade (ca fige et reprend tout de suite après) n'importe ou ! :?
Et tu étais connecté à internet quand tu as testé ?
Chez moi ça peut aussi saccader si je suis connecté , sinon c'est fluide.
Mais bon, il y a quand même des améliorations à apporter pour que ça tourne correctement sur d'autres machines.

Merci Progi1984, et chez toi , ça saccade aussi ?
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

comtois a écrit : Et tu étais connecté à internet quand tu as testé ?
Chez moi ça peut aussi saccader si je suis connecté , sinon c'est fluide.
Oui mais ma connexion passe par un modem/routeur qui est connecté à un switch et les micros sont connectés au switch (petit réseau chez moi) donc ca ne vient pas de la cnx (enfin j'espères :) )
Sinon les DLL (engine3D et stlport) utilisées viennent du pack ogre1.0.3 :wink:
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Pas de saccade !
Répondre