Code source complet -Collision 3D et réponse
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Au final, qu'as tu fait ?
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
Et avec l'exécutable TestOctreeLaser.exe ? Compilé avec la beta 6.Coolman a écrit :Test effectué avec la beta 4 de purebasic 4...
J'ai choisi cette map justement parce que c'était la seule qui faisait ramer ma carte graphique , c'est intéressant pour mettre au point un algola seul facon d'avoir quelque chose de fluide, c'est de descendre la resolution a 640x480, bon ce qui m'etonne c'est le post de certains qui affirment que c'est fluide, desolé mais en appuyant sur les touches de deplacements et en meme temps en effectuant des deplacements lateraux, ca rame, et la c'est seulement une exploration d'une petite map, j'ai du mal a imaginer l'implentation d'une ia ou de sprites
animés dans une map conscequente...

Je n'ai pas encore testé , mais je pense que si je génère la même carte sans les lightmaps , ça sera plus rapide ? je ferai l'essai par curiosité.
Enfin bon , là c'est pour tester ,mais si plus tard je me lance dans un jeu je ne ferai pas des niveaux de cette taille. Je procéderai comme pour les maps 2D , des petits tronçons accolés les uns aux autres et que j'affiche selon ma position .
un bon exemple ici vu sur le site http://www.frogames.net,Les pièces détachées :

une map complète :

Quand tu vas sur le site d'Ogre , il y a la présentation d'un jeu qui utilise Ogre, les images sont impressionnantes , et les critiques favorables. Seulement les types qui ont fait le jeu savent coder, et ont sûrement une meilleure maitrise des algos que moiIl me semble que le moteur 3d ogre est allergique aux hautes resolutions et n'est probablement pas utilisable dans l'etat dans un projet d'envergure, je crois qu'il excelle plutot dans des demos graphiques et il est vrai que le rendu est vraiment bon...

Bizarre , tu as quoi dans le log d'ogre ?Note : le robot est blanc, je dis ca car j'ai vu que tu as inclu les textures et il n'y a pas de rendu a ce niveau...
Moi j'ai ça
18:40:26: Texture: r2skin.jpg: Loading 1 faces(PF_B8G8R8,512x512x1) with 0 generated mipmaps from Image. Internal format is PF_X8R8G8B8,512x512x1.
Merci, j'ai changé la procédure qui calcule si un point est dans un triangleEn tous cas c'est du beau boulot, bravo
(dans le fichier Car_Collision3DV3.pb)
Code : Tout sélectionner
Procedure TestPointDansTriangle1(*point.s_Vecteur, *pa.s_Vecteur, *pb.s_Vecteur, *pc.s_Vecteur)
Define.s_Vecteur e10, e20, vp
Define.f a, b, c, ac_bb, d, e, x, y, z
SoustractionVecteur(e10, *pb, *pa)
SoustractionVecteur(e20, *pc, *pa)
a = ProduitScalaire(e10, e10)
b = ProduitScalaire(e10, e20)
c = ProduitScalaire(e20, e20)
ac_bb = (a*c)-(b*b)
SoustractionVecteur(vp, *point, *pa)
d = ProduitScalaire(vp, e10)
e = ProduitScalaire(vp, e20)
x = (d*c)-(e*b)
y = (e*a)-(d*b)
z = x+y-ac_bb
ProcedureReturn ((PeekL(@z)& ~(PeekL(@x)|PeekL(@y))) & $80000000)
EndProcedure

Tu peux aussi changer les valeurs #Taille , en mettant 5 ou 6 dans le fichier Octree.pbi.
Et puis là j'ai ajouté des trucs par rapport à la démo précédente, tu as vu que le robot lance un laser et qu'il détecte en permanence les obstacles, ça prend pas mal de FPS 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.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
oui c'est ça , ça permet de ne s'occuper que des triangles qui se trouvent dans la zone dans laquelle on est .
C'est le premier jet , je n'ai pas encore contrôlé dans tous les sens si elle faisait bien ce que j'attends d'elle
il faudra par exemple dans le cas du lancer de rayon que je m'assure de commencer la recherche dans la boite dans laquelle se trouve le point d'origine du rayon ,et de scruter selon la direction du rayon ceci pour trouver au plus vite une intersection et on sort dès qu'on en tient une
C'est le premier jet , je n'ai pas encore contrôlé dans tous les sens si elle faisait bien ce que j'attends d'elle

il faudra par exemple dans le cas du lancer de rayon que je m'assure de commencer la recherche dans la boite dans laquelle se trouve le point d'origine du rayon ,et de scruter selon la direction du rayon ceci pour trouver au plus vite une intersection et on sort dès qu'on en tient une

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.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
je ne sais pas si ça fait une différence , ça ne devrait pas, mais il y a eu une mise à jour d'ogre depuis la beta 4.Coolman a écrit :Test effectué avec la beta 4 de purebasic 4...
Note : le robot est blanc, je dis ca car j'ai vu que tu as inclu les textures et il n'y a pas de rendu a ce niveau...
Regarde dans ogre.log , moi j'ai ça :
Je pense que tu dois avoir la 1.0.6.18:40:19: *-*-* Version 1.0.7 (Azathoth)
[EDIT]
Je viens de faire l'essai sans les lightmaps , ben je préfère comme ça finalement

Au démarrage c'est plus rapide à s'afficher, pour le gain en FPS je ne sais pas trop, peut-être un peu mieux ? Chez moi c'est toujours à 60 .
En mettant une seule lumière Jaune, ça donne ça :
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.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Salut SehkaSehka a écrit :Ce qui m'étonne le plus, hormis que l'on ait une grosse différence de FPS, c'est la stabilité du nombre de FPS malgré l'ajout du robot...
Pour la stabilité, je ne sais pas trop , en fait avant d'ajouter des trucs j'avais un peu optimisé , du moins je crois.
Je n'ai pas fait de test pour comparer, disons que j'ai supprimé quelques calculs qui ne servaient pas dans une procédure souvent sollicitée, celle qui calcule les collisions

Et j'ai aussi ajouté un test avant de lancer tous les calculs compliqués sur les arêtes du triangle , je ne fais ces calculs que si le point d'intersection calculé se trouve bien dans la boite en cours de l'octree. Je ne sais pas encore s'il y a un gain , j'espère que oui , faudra que je trouve un moyen de le mesurer.
Sinon Coolman trouve que c'est pas normal que ton FPS soit si faible , là je ne peux rien dire ,je ne connais pas les cartes graphique.Déjà il est stable , c'est bien

J'ai aussi un pentium 4 comme toi , le mien est à 2,6 , donc très proche du tien.
@Polo , il parait qu'une taille normale d'écran dans un jeu c'est 1024x768 , plus personne ne joue en 800x600

Je laisse les sources pour que chacun puisse triturer à sa guise, c'est vrai que ça serait mieux avec un ScreenRequester, mais bon ...
Et voici une archive complète , avec le temple sans lightmap , personnellement je préfère cette version .
Temple sans lightmap (798 ko)
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.
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,
Bon ok pour la carte, on va la laisser de côté pour l'instant.
Si tu le permet, j'ai quelques questions qui je pense peuvent éclairer la lanterne des lecteurs ( et moi aussi
)
Pourrais tu expliquer comment tu obtiens tes Mesh sous Deled ?
En effet, avec la version lite cela ne semble pas possible...
Utilise-tu un Convertisseur ?
Par contre puisque tu sembles bien avancé dans tes tests avec Ogre, qu'en penses tu ? Est-ce Viable ?
Bon ok pour la carte, on va la laisser de côté pour l'instant.
Si tu le permet, j'ai quelques questions qui je pense peuvent éclairer la lanterne des lecteurs ( et moi aussi

Pourrais tu expliquer comment tu obtiens tes Mesh sous Deled ?
En effet, avec la version lite cela ne semble pas possible...
Utilise-tu un Convertisseur ?
Par contre puisque tu sembles bien avancé dans tes tests avec Ogre, qu'en penses tu ? Est-ce Viable ?
C'est à télécharger sur le site de delgine.com, dans plugins tu trouveras Ogre Mesh Exporter Plugin 1.03Sehka a écrit :Pourrais tu expliquer comment tu obtiens tes Mesh sous Deled ?
En effet, avec la version lite cela ne semble pas possible...
Utilise-tu un Convertisseur ?
là , ça dépend de ce que tu en attends, moi j'ai des petits besoins , je n'ai pas l'intention de me lancer dans de grands projets, avec une sphere et un cube je suis heureuxPar contre puisque tu sembles bien avancé dans tes tests avec Ogre, qu'en penses tu ? Est-ce Viable ?

Pour l'instant , mon plus gros besoin serait un retour sur les angles de tous les objets 3D , camera, entity , etc .
Avoir plus de fonctions pour gérer les rotations, comme Blitz3d ou DarkBasic. Et une projection 3D>2D et 2D>3D. Voila les gros manques pour moi. Et aussi le format BSP, mais ça on l'aura avec Dx9.
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.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Merci.comtois a écrit : C'est à télécharger sur le site de delgine.com, dans plugins tu trouveras Ogre Mesh Exporter Plugin 1.03

Je n'attends rien de spécial...Je suis surtout attiré par le côté ludiquecomtois a écrit : là , ça dépend de ce que tu en attends, moi j'ai des petits besoins , je n'ai pas l'intention de me lancer dans de grands projets, avec une sphere et un cube je suis heureux![]()

Sehka, je ne vais pas mettre l'image, mais j'ai ca :
cpu 2.6
winxp pro sp2 (pourquoi toujours le sp1, win xp est beaucoup plus stable avec le sp2 ???, il faut desactiver le centre de securite (utilise antispy si tu ne sais pas comment faire manuellement) et le firewall associé (qui est une grosse daube) et d'en mettre un autre (j'utilise zone alarme largement suffisant)...
directx 9
agp 4x
memoire 256
version forceware : 81.95
Je vois qu'a part le proc, ta config est presque similaire meme mieux pour l'agp 8x (mais de toute facon, ca ne joue pas ici, 128 mo c'est largement suffisant) et la version du driver plus recente. je repete qu'un fps de 35 avec une nvidia gt6600 est anormale, c'est quand meme dommage de se payer une carte gt6600 pour obtenir le meme ou un resultas inferieur aux anciennes carte. essaie
d'enlever tous les process inutile en tache de fond...
Comtois, j'ai ca dans le log :
14:12:17: *-*-* OGRE Initialising
14:12:17: *-*-* Version 1.0.7 (Azathoth)
14:12:17: ***************************************
Il faudrait peut etre que je reessaie avec la beta 6 de pure, j'avoue que j'ai la flemme de retelecharger surtout que les version sortent assez rapidement (bravo fred), j'attend la version stable, je n'ai helas pas beaucoup de temps mais je prend du temps quand je vois un excellent code comme le tien concernant la 3d, la 3d m'a toujours interessé, je n'ai a priori pas les competences ni le temps d'ailleurs pour faire ou essayer de faire un moteur mais j'en ai repere un a prix correct (env 100 $) et d'excellentes
qualités ici :
http://www.garagegames.com/
ca necessite d'utiliser le c, mais il doit etre possible de l'interfacer a pure avec une dll, bon point cependant, le moteur 3d est
compatible et utilisable avec dev c++ autrement dit gcc qui est un compilateur gratuit...
Concernant le fps, l'ajout du robot l'a diminué a env 79-80, si je tourne autour du robot, ca peut descendre a 49...
j'ai vu dans la boucle que tu utilises des if-endif separé, exemple :
If KeyboardPushed(#PB_Key_Left)
ElseIf KeyboardPushed(#PB_Key_Right)
EndIf
If KeyboardPushed(#PB_Key_Up)
ElseIf KeyboardPushed(#PB_Key_Down)
EndIf
c'est mieux qu'avant (le precedent code) remarque, mais pourquoi pour toutes les touches du clavier ne pas faire :
If KeyboardPushed(#PB_Key_Left)
ElseIf KeyboardPushed(#PB_Key_Right)
ElseIf KeyboardPushed(#PB_Key_Up)
ElseIf KeyboardPushed(#PB_Key_Down)
Elseif -----------------
Elseif -----------------
EndIf
Ca devrait accelerer la gestion du clavier, des que le compilo tombe sur une touche il ne testera pas les autres possibilitées...
a part ca, tu devrais un peu commenter ton code, c'est vrai que c'est difficillement comprehensible dans l'etat...
Dans les includes, c'est le bazar, plusieurs fichiers comportent des commandes XIncludeFile similaires, impossible de suivre, a mon avis il est urgent de nettoyer ton code a ce niveau...
Pour ce qui est du robot, si je lance TestOctree.pb, j'ai un robot sans textures, mais si j'essaie de lancer TestOctreeRobot.pb, j'ai une erreur : Dans la procedure ControleCamera(*Entity.Parametres,*Ellipsoide.Vecteur)
Line 1: Structure not found: Parametres
ca doit etre lié a la version beta 4 de purebasic...
Bonne continuation
cpu 2.6
winxp pro sp2 (pourquoi toujours le sp1, win xp est beaucoup plus stable avec le sp2 ???, il faut desactiver le centre de securite (utilise antispy si tu ne sais pas comment faire manuellement) et le firewall associé (qui est une grosse daube) et d'en mettre un autre (j'utilise zone alarme largement suffisant)...
directx 9
agp 4x
memoire 256
version forceware : 81.95
Je vois qu'a part le proc, ta config est presque similaire meme mieux pour l'agp 8x (mais de toute facon, ca ne joue pas ici, 128 mo c'est largement suffisant) et la version du driver plus recente. je repete qu'un fps de 35 avec une nvidia gt6600 est anormale, c'est quand meme dommage de se payer une carte gt6600 pour obtenir le meme ou un resultas inferieur aux anciennes carte. essaie
d'enlever tous les process inutile en tache de fond...
Comtois, j'ai ca dans le log :
14:12:17: *-*-* OGRE Initialising
14:12:17: *-*-* Version 1.0.7 (Azathoth)
14:12:17: ***************************************
Il faudrait peut etre que je reessaie avec la beta 6 de pure, j'avoue que j'ai la flemme de retelecharger surtout que les version sortent assez rapidement (bravo fred), j'attend la version stable, je n'ai helas pas beaucoup de temps mais je prend du temps quand je vois un excellent code comme le tien concernant la 3d, la 3d m'a toujours interessé, je n'ai a priori pas les competences ni le temps d'ailleurs pour faire ou essayer de faire un moteur mais j'en ai repere un a prix correct (env 100 $) et d'excellentes
qualités ici :
http://www.garagegames.com/
ca necessite d'utiliser le c, mais il doit etre possible de l'interfacer a pure avec une dll, bon point cependant, le moteur 3d est
compatible et utilisable avec dev c++ autrement dit gcc qui est un compilateur gratuit...
Concernant le fps, l'ajout du robot l'a diminué a env 79-80, si je tourne autour du robot, ca peut descendre a 49...
j'ai vu dans la boucle que tu utilises des if-endif separé, exemple :
If KeyboardPushed(#PB_Key_Left)
ElseIf KeyboardPushed(#PB_Key_Right)
EndIf
If KeyboardPushed(#PB_Key_Up)
ElseIf KeyboardPushed(#PB_Key_Down)
EndIf
c'est mieux qu'avant (le precedent code) remarque, mais pourquoi pour toutes les touches du clavier ne pas faire :
If KeyboardPushed(#PB_Key_Left)
ElseIf KeyboardPushed(#PB_Key_Right)
ElseIf KeyboardPushed(#PB_Key_Up)
ElseIf KeyboardPushed(#PB_Key_Down)
Elseif -----------------
Elseif -----------------
EndIf
Ca devrait accelerer la gestion du clavier, des que le compilo tombe sur une touche il ne testera pas les autres possibilitées...
a part ca, tu devrais un peu commenter ton code, c'est vrai que c'est difficillement comprehensible dans l'etat...
Dans les includes, c'est le bazar, plusieurs fichiers comportent des commandes XIncludeFile similaires, impossible de suivre, a mon avis il est urgent de nettoyer ton code a ce niveau...
Pour ce qui est du robot, si je lance TestOctree.pb, j'ai un robot sans textures, mais si j'essaie de lancer TestOctreeRobot.pb, j'ai une erreur : Dans la procedure ControleCamera(*Entity.Parametres,*Ellipsoide.Vecteur)
Line 1: Structure not found: Parametres
ca doit etre lié a la version beta 4 de purebasic...
Bonne continuation

Je viens de tester ton archive TempleComplet.zip, c'est moins beau graphiquement mais c'est plus rapide, le robot est cette fois texturé, fps d'environ 85-83, ca peut descendre a 48 fps dans le cas suivant :
- aller a pleine vitesse vers la partie eclairée
- se retrouner de face vers l'escalier, remonter rapidement, on sent que ca rame au deuxieme escalier, mais ca redevient rapide en atteignant le milieu de la salle avec les piliers...
j'ai vu que la resolution choisi est de 1024x768 dans init, c'est a l'air d'etre un bon compromis...
Cela dit, c'est impressionnant tes progres, a mon avis, un petit fps avec une petite map est largement a ta portée, pour les modeles animés et le son, tu devrais en trouver des tas sur le net...
j'ai egallement visite le site : www.frogames.net
Merci pour le lien...
interessant, ils utilisent le moteur torque celui la meme dont je parlais et que j'ai l'intention d'acheter dans quelques temps

- aller a pleine vitesse vers la partie eclairée
- se retrouner de face vers l'escalier, remonter rapidement, on sent que ca rame au deuxieme escalier, mais ca redevient rapide en atteignant le milieu de la salle avec les piliers...
j'ai vu que la resolution choisi est de 1024x768 dans init, c'est a l'air d'etre un bon compromis...
Cela dit, c'est impressionnant tes progres, a mon avis, un petit fps avec une petite map est largement a ta portée, pour les modeles animés et le son, tu devrais en trouver des tas sur le net...
j'ai egallement visite le site : www.frogames.net
Merci pour le lien...
interessant, ils utilisent le moteur torque celui la meme dont je parlais et que j'ai l'intention d'acheter dans quelques temps

- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Sur quoi tu bosses en ce moment Comtois ?
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net