Page 2 sur 14

Publié : dim. 20/nov./2005 16:24
par Polo
Autant pour moi, j'avais fait une connerie, en fait ça marche :oops:
Bon boulot, d'ailleurs !

Publié : dim. 20/nov./2005 16:29
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 :)

Publié : dim. 20/nov./2005 16:35
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 :)

Publié : mar. 22/nov./2005 18:48
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 :)

Publié : mer. 23/nov./2005 20:39
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.

Publié : jeu. 24/nov./2005 21:29
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 :)

Publié : sam. 26/nov./2005 18:01
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!

Publié : sam. 26/nov./2005 20:39
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 .

Publié : sam. 26/nov./2005 21:51
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 :)

Publié : sam. 26/nov./2005 22:38
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 :?

Publié : sam. 26/nov./2005 23:20
par flaith
ca saccade (ca fige et reprend tout de suite après) n'importe ou ! :?

Publié : dim. 27/nov./2005 0:00
par Progi1984
60 FPS

P4 2,6 Ghz
256 Ram
Ati radeon 9200 pro
winxp
directx9c
resolution 1152x864 / 32bits

Publié : dim. 27/nov./2005 8:31
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 ?

Publié : dim. 27/nov./2005 9:55
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:

Publié : dim. 27/nov./2005 12:05
par Progi1984
Pas de saccade !