Code source complet -Collision 3D et réponse

Généralités sur la programmation 3D
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Code source complet -Collision 3D et réponse

Message par comtois »

J'ai utilisé l'excellent tutoriel de Fauerby
http://www.peroxide.dk/

Et voila un début de résultat , ça glisse et la gravité est gérée.
C'est pas terrible , ça broute, j'ai des problèmes avec le sol , alors dans cette démo , j'ai triché, j'ai un seul triangle pour le sol. Mais ça ne fait rien, je suis quand même content :)

Je n'ai pas encore essayé avec un escalier, il faut d'abord que ça fonctionne correctement avec cette démo , et c'est pas demain la veille :?

Pour l'instant j'ai suivi à la lettre le tutoriel de Fauerby , je vais tout reprendre en essayant d'autres solutions, on verra bien ce qu'il en ressortira.

Il n'y a pas les sources dans la démo (c'est la même chose que le tut de Fauerby , sauf que je l'ai adapté à PureBasic)

Le zip contient deux exe , le premier permet de créer une map en 2D.
le second permet de créer la map en 3D à partir de la map 2D et de tester les collisions.

Démo (576 ko)
Dernière modification par comtois le jeu. 01/déc./2005 18:29, modifié 1 fois.
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 »

C'est des collisions basées sur les polygones ? 8O
ça marche drôlement bien !!!
Est que tu nous montrera quand même les sources ? :P
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

oui j'utilise des triangles , donc à terme il sera possible de gérer les collisions avec n'importe quel objet 3D , et plus particulièrement le format BSP.
Il faudra extraire la liste des triangles de l'objet , et les trier dans un arbre , donc c'est pas pour tout de suite. Pour les sources aussi , c'est pas pour tout de suite :)

Il faut d'abord que je réécrive le tout, et que je trouve des solutions pour améliorer la gestion.
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 »

Ben, alors, c'est vachement intéressant ton truc !
Surtout que ce que tu nous as montré marche bien !
En fait les collisions en elle même c'est pas compliqué, mais les réponses :?
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Exactement, ce qui marche bien c'est la détection du triangle en collision , et le calcul du point d'impact sur le triangle , mais la gestion de la réponse c'est une autre histoire.Et encore je ne teste pas des objets en mouvement pour l'instant , ça viendra plus tard ( ascenseurs et des trucs de ce genre).

Bon allez je sors pendant qu'il fait beau , je reprendrai les calculs plus tard :)
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 »

Ben, quand j'avais essayé, ça me faisait la même chose : la collision sphere/triangle était parfaite, par contre, la réponse, euh, c'était bien pire que le résultat auquel tu est arrivé !
Je m'y remettrais p't'être un jour ;)
Sami
Messages : 51
Inscription : mar. 01/nov./2005 21:13
Localisation : Savigny-Sur-Orge

Message par Sami »

comtois a écrit :oui j'utilise des triangles , donc à terme il sera possible de gérer les collisions avec n'importe quel objet 3D , et plus particulièrement le format BSP.
Il faudra extraire la liste des triangles de l'objet , et les trier dans un arbre , donc c'est pas pour tout de suite. Pour les sources aussi , c'est pas pour tout de suite :)
Heu pourquoi refaire un arbre binaire puisque dans le fichier .Bsp il s'y trouve déjà?
Le mieux serait d'y avoir accés directement juste pour l'économie de mémoire.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

parce que je ne connais pas le format BSP :)
PureBasic ne connait que le format de Quake 3 , on verra avec la V4 s'il est possible d'en gérer d'autres ?

Tout ce que je sais , c'est qu'il faudra réduire le nombre des triangles à tester en créant une liste des triangles susceptibles d'être en collision ,je ne sais pas encore comment, c'est la deuxième étape.
J'ai entendu parler d'arbre BSP , d'octree , etc , mais je ne connais pas tout ça , il faudra que j'apprenne à les utiliser.

Pour l'instant j'en suis encore à essayer de gérer les collisions , et j'en ai pour un long moment.
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.
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Bravo :)
Polo
Messages : 612
Inscription : sam. 03/juil./2004 20:14

Message par Polo »

Alors, Comptois, tu y arrives ? :wink:
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

@Comtois

C'est bien joli, les démos.
Mais quand est-ce qu'il arrive, le jeu en 3D style Half-Life ou Quake.

Parce que c'est long, je trouve :roll:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

non , c'est la galère, si je touche un calcul pour améliorer d'un côté, ça merdouille d'un autre côté :?

Hier j'ai commencé à tracer les calculs , mais va falloir que je réduise , j'avais un fichiers de 3Mo de données après seulement 1 minute de jeu.
La mise au point va prendre du temps.

dans cette démo , les collisions sont un peu mieux , je ne traverse plus les murs , mais ça tremble encore dans les angles.et j'ai un glissement à la jointure des triangles au sol. Je vais d'abord commencer à tracer ce défaut peut-être qu'il m'aidera pour les autres ?

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

Nécessite la version d'ogre Beta .
Je vais quand même préparer une lib, elle devrait fonctionner avec opengl , ogre ou ce que tu veux , puisqu'il n'y a que des calculs , pas d'instructions spécifiques à ogre. Il faudra juste envoyer la liste des triangles à la lib , la vitesse et la position d'origine, et elle retourne la nouvelle position.Il n'y a plus qu'à placer son personnage.
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.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Chris a écrit :@Comtois

C'est bien joli, les démos.
Mais quand est-ce qu'il arrive, le jeu en 3D style Half-Life ou Quake.

Parce que c'est long, je trouve :roll:
Oui j'ai rien foutu ce matin , j'ai honte :)
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 »

Ben, cette dernière démo ne marche pas chez moi avec la dll d'ogre 1.0.3 du forum anglais. ça va en plein écran et ça repart direct :?
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

tu as copié les deux dll dans le répertoire ?

stlport_vc646.dll et Engine3D.dll

Si tu as fait ça , alors je ne vois pas d'où vient le problème.

ça fonctionne chez quelqu'un ?
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.
Répondre