[n3xt-D] un moteur pour PureBasic

Généralités sur la programmation 3D
Anonyme

Message par Anonyme »

Cpl.Bator a écrit:
iBodyX/Y/Z() me retourne un Invalid memory si il y a plus de 1 body dans la scene.

pareil pour iFreeNode()


Aurais-tu un petit code illustrant le probleme, je n'ai pas reussi a reproduire ce genre de soucis,
y compris avec des scenes contenant plusieurs centaines d'elements, que ce soit pour les fonctions
iBodyX/Y/Z ou iFreeNode() ...

Je ne suis pas sur mon pc , mais c'est simple à reproduire

tu prends l'exemple 82 ( celui ou on lance des cubes dans un niveau de quake 3)

Chaque cube est mis dans une liste chainée
Chaque cube à un temps de vie

si le temps de vie < 0 alors tu le supprimes.
Je voulais la positions des éléments pour simulé une force d'explosion , mais ca plante aussi avec les iBodyN()
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

j'ai lancer l'exemple 82 je jette plein de caisse tout fonctionne bine 8O
tu a modifier le source ou pas ?





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

En fait je comprend mieux.

Pour le FreeNode, c'est normal, car en fait tu supprime un node du moteur graphique qui possede
un body (moteur physique) declare.
Il faut d'abord faire un iFreeBody (si je ne me trompe pas, je suis toujours avec mon telephone).
Il faudrais que je fasse faire au code le lien automatiquement, je vais voir cela.

Pareil pour iNodeX/Y/Z, je pense qu'il faut que tu passe par les fonctions du moteur physique
(iBodyX si ma memoire ne me trahie pas).

Le moteur physique est en surcouche par rapport au moteur graphique, donc quand les
equivalent existe au niveau du moteur physique en termes d'instructions, il vaut mieux passer
par la.

A++
Force et sagesse...
Anonyme

Message par Anonyme »

Pareil pour iNodeX/Y/Z, je pense qu'il faut que tu passe par les fonctions du moteur physique
(iBodyX si ma memoire ne me trahie pas).
Oui, sauf que c'est la position de la caméra , donc pas de body physique , mais le node , ca plante aussi , je précise par ailleurs que je suis sous nux.
Anonyme

Message par Anonyme »

Code : Tout sélectionner

iPickCamera(*cam,iGetMouseX(),iGetMouseY(),)
Pos.VECTOR3
If iGetKeyDown(#KEY_KEY_E)
iPickedPosition(@Pos)
Debug Pos\x
EndIf 

Pos\x me renvois 0 a chaque coup , pas pratique pour pické :D


Edit regler tout seul :D

Code : Tout sélectionner

iPickCamera(*cam,iGetMouseX(),iGetMouseY(),#ENT_PICKFACE)
Anonyme

Message par Anonyme »

Peut on contrôler l'anti-aliassing ?
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

Hello tous, bon ben la compilation n'a pas fonctionné (sous GNU/Linux) :

Code : Tout sélectionner

flaith@sangha:~/0-DEV/BASIC/PUREBASIC/n3xtd/SourceEngine/source/n3xtd$ make
g++ -Wall -pipe -g -D_DEBUG -I../../include -Izlib -Ijpeglib -Ilibpng -I/usr/X11R6/include -DIRRLICHT_EXPORTS=1  -c -o n3xtd_Mesh.o n3xtd_Mesh.cpp
In file included from n3xtd_Mesh.cpp:16:
n3xtd_Constantes.h:77:7: warning: no newline at end of file
In file included from n3xtd_Mesh.cpp:17:
n3xtd_EventReceiver.h:83:7: warning: no newline at end of file
n3xtd_Mesh.cpp:682:3: warning: no newline at end of file
../../include/ISceneNode.h: In constructor ‘irr::scene::ISceneNode::ISceneNode(irr::scene::ISceneNode*, irr::scene::ISceneManager*, irr::s32, const irr::core::vector3df&, const irr::core::vector3df&, const irr::core::vector3df&)’:
../../include/ISceneNode.h:827: warning: ‘irr::scene::ISceneNode::IsDebugObject’ will be initialized after
../../include/ISceneNode.h:788: warning:   ‘irr::core::quaternion irr::scene::ISceneNode::QWorld’
../../include/ISceneNode.h:43: warning:   when initialized here
n3xtd_Sprites3D.h: At global scope:
n3xtd_Sprites3D.h:40: error: expected ‘,’ or ‘...’ before ‘||’ token
n3xtd_Mesh.cpp:393: error: expected ‘,’ or ‘...’ before ‘||’ token
n3xtd_Mesh.cpp: In function ‘void iOrientationSprite3D(irr::scene::CSpriteSceneNode*, int)’:
n3xtd_Mesh.cpp:395: error: expected primary-expression before ‘||’ token
n3xtd_Mesh.cpp:395: error: expected primary-expression before ‘)’ token
n3xtd_Mesh.cpp: In function ‘int iAddCVertexMesh(irr::scene::CConstructMeshSceneNode*, void*, int)’:
n3xtd_Mesh.cpp:460: warning: unused variable ‘nbre_Vertex’
n3xtd_Mesh.cpp: In function ‘void iAddMVerticesMesh(irr::scene::CConstructMeshSceneNode*, void*, int, int)’:
n3xtd_Mesh.cpp:493: warning: unused variable ‘nbre_Vertex’
make: *** [n3xtd_Mesh.o] Erreur 1
pour info, les version gcc et g++ :

Code : Tout sélectionner

flaith@sangha:~/0-DEV/BASIC/PUREBASIC/n3xtd/SourceEngine/source/n3xtd$ gcc --version
gcc (GCC) 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

flaith@sangha:~/0-DEV/BASIC/PUREBASIC/n3xtd/SourceEngine/source/n3xtd$ g++ --version
g++ (GCC) 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Merci d'avance pour vos lumières :wink:
Anonyme

Message par Anonyme »

Flaith , j'ai fait un package plus haut ;)



@Tmyke

j'ai corrigé une procédure qui faisait des #INF
a mettre a jour dans ton package. :)

Code : Tout sélectionner

Procedure Vec3_Normalize(*vec1.VECTOR3)
    length.f = Sqr((*vec1\x * *vec1\x) + (*vec1\y * *vec1\y) + (*vec1\z * *vec1\z))
    If length=0 : ProcedureReturn 0 : EndIf
    *vec1\x = *vec1\x / length
    *vec1\y = *vec1\y / length
    *vec1\z = *vec1\z / length
EndProcedure
Anonyme

Message par Anonyme »

je commence a m'amuser :D ( sous windows uniquement l'exe :/ )
http://rapidshare.de/files/47626660/MesTest.rar.html
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Merci pour toutes ces info Cpl.Bator. C'est tres frustrant de ne pas pouvoir poursuivre
le dialogue pour le moment (faute de NET), et de tester ton archive :(

Je vais donc voir cette histoire de Position pour les elements, pour voir quelle est l'origine de
ces soucis... Et aussi mieux faire interragir la partie graphique et physique.
Pour l'AntiAlising, je crois que j'ai zappé l'instruction, je rajoute, donc dispo dans la
prochaine update.
C'est bien d'avoir un retour d'experience, cela permet d'epurer les gros bug.

De mon coté, en plus des correctifs, j'ai avance la partie geston liee à la 2D, avec un petit exemple sympa.

PS: le technicien vien cet apres midi, j'espere avoir retrouve le NET d'ici a ce soir
Force et sagesse...
Anonyme

Message par Anonyme »

Ca marche aussi sous linux mon petit code
Faut juste utilisé cette import (dispo dans mon package linux plus haut ):

Code : Tout sélectionner

CompilerIf #PB_Compiler_OS = #PB_OS_Linux
  ; link OpenGL
  ImportC "-lGL"
  EndImport
  ;link Xf86
  ImportC "-lXxf86vm"
  EndImport
  ; link X11
  ImportC "-lX11"
  EndImport
  
  ImportC "-lNewton"
  EndImport
  
  ImportC "-lN3xtD"
CompilerEndIf      

Pas de bug pour le moment à signalé.


ps: il se peut que la démo rame sur des petits pc , c'est du au maillage des cube et de la scene en générale ( pour mes tests de lumières ) , donc le rendu n'est pas optimisé.


@Tmyke , As tu vu le lien plus haut concernant la lumiere ? x-effect reloaded. c'est vraiment primordiale.
Si tu l'intègre , je lance un projet 3D :D
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Bon, je viens de retrouver ma connexion.Image

@Cpl.Bator: j'ai fait les correctif dont tu parles dans les divers post que tu as écris.
Je pédales sur les bug cités. Pour le lien que tu donne, XEffects de BlindSide, je connais,
et en effet, je m'appuierais très certainement dessus pour pondre quelque chose dans les
semaines à venir ;)
Merci pour la coquille trouvée dans la fonction 'Vec3_Normalize(*vec1.VECTOR3) '

Cpl.Bator a écrit :je commence a m'amuser :D ( sous windows uniquement l'exe :/ )
http://rapidshare.de/files/47626660/MesTest.rar.html
Vraiment extra, puis-je placer ton archive dans la section Download du portail
dans la section Demo&Codes->codes, ainsi qu'un screenshot dans la galerie ?

Donc, d'ici à vendredi-samedi, bonne mise à jour avec toujours la 2D que je termine
et un petit jeux en guise d'exemple 2D.
Force et sagesse...
Anonyme

Message par Anonyme »

oui , c'est libre , fait comme bon te semble. :D
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Ajouté aux codes du portail donc:

Image


J'ai regardé le package Linux, j'ai été surpris par la taille, plusieurs dizaine de Mo.
Par exemple libN3xtD.a fait 54Mo, balaise le truc 8O

;)
Force et sagesse...
Anonyme

Message par Anonyme »

l'avantage , ta pas a te trimbalé les lib avec les exe , ca reste light :D
j'me tate pour une demo plus pointue , mais je ne sais pas quoi :/
si ta une idée à me soumettre.
Répondre