Page 32 sur 48

Publié : sam. 15/août/2009 22:41
par Ollivier
Et est-ce que tu penses que tu peux faire quelque chose de ce côté-là (et non des moindres, je te l'accorde) ou bien est-ce que ça te semble trop lourd et à côté du sujet essentiel de N3xt?

Publié : dim. 16/août/2009 7:33
par tmyke
Il y a toujours moyen, après tout dépend du temps de travail que cela représente, ainsi que le gain réél pour
les utilisateurs actuels (autant dire proche de zero).
Cet aspect représente-t-il un obstacle pour toi quand à l'utilisation de N3xtD ?

Publié : mar. 18/août/2009 14:03
par SPH
Je n'ai entrelus que le premier post mais je réagis immediatement : quel grand malheur de réinventé la roue qui a ete 25 fois créée....
Les nouveaux moteurs 3D ont un vrai sens quand ils sont spécialisés pour un effet particulier. Par exemple, faire un moteur pour tout jeux en vu isometrique a la diablo2 (ca permet d'optimiser a mort des aspects en en laissant tomber d'autres)

Publié : mar. 18/août/2009 14:41
par Progi1984
Pour n'avoir entrelu que le premier post, N3xt-D n'est pas une réinvention de la roue. C'est une version modifiée et améliorée de Irrlicht.

Publié : mar. 18/août/2009 18:05
par tmyke
Progi1984 a écrit :Pour n'avoir entrelu que le premier post, N3xt-D n'est pas une réinvention de la roue. C'est une version modifiée et améliorée de Irrlicht.
effectivement ;)
SPH a écrit :Je n'ai entrelus que le premier post mais je réagis immediatement : quel grand malheur de réinventé la roue qui a ete 25 fois créée....
Les nouveaux moteurs 3D ont un vrai sens quand ils sont spécialisés pour un effet particulier. Par exemple, faire un moteur pour tout jeux en vu isometrique a la diablo2 (ca permet d'optimiser a mort des aspects en en laissant tomber d'autres)
Dans l'absolue, tu as certainement raison. Quelque soit le domaine, les système spécialisé sont forcement
plus performant que les systèmes généraux, censé pouvoir couvrir la plupart des situations.

Les moteurs 3D n'échappe pas à cette règle. Maintenant, N3xtD reste un projet destiné au plus grand nombre,
et avant tout dans un but initiatique, permettant de faire à peut près tout. Les plus exigeant iront certainement voir ailleurs,
les plus compétant écriront leur propre moteur, c'est encore la meilleurs solution pour coller au mieux au
projet que l'on souhaite monter...

Publié : jeu. 20/août/2009 10:21
par Anonyme
Voici les dernière erreurs du makefile sous linux.
Terminal a écrit :Dans le fichier inclus à partir de CGUIProgressBar.cpp:3:
CImageGUISkin.h:4:22: erreur: Irrlicht.h : Aucun fichier ou dossier de ce type
donc , j'ouvre se fameux CGUIProgressBar.cpp , je le compare avec d'autre
CGUIxxx.cpp et je vois qu'il manque cette directive :
#ifdef _IRR_COMPILE_WITH_GUI_
mais le problème n'est pas là , dans CImageGUISkin.h , il ne trouve pas Irrlicht.h , en mettant irrlicht.h , la compilation continue.

la dernière erreur réside dans le makefile :
Terminal a écrit : Pas de règle pour fabriquer la cible « n3xtd_XEffect.o », nécessaire pour « libN3xtD.a ». Arrêt.
erreur de syntaxe , le cpp du fichier objet est n3xtd_XEffects.cpp et non pas n3xtd_XEffect.cpp , manque juste le 's' ;)
ta juste à rajouté le s dans le makefile , et sa roule. ;)
je vais de se pas , essayer de fabriquer un pont 3d qui casse si des objet trop lourd sont dessus ! :D

Publié : jeu. 20/août/2009 10:52
par tmyke
Merci comme d'habitude pour les essais Linux, ce qui me permet de corriger mes erreur.
Je met à jour tout cela, et la correction sera dispo dans les package que je mettrais à jour dès demain si
tout va bien ;)

Publié : jeu. 20/août/2009 10:59
par Anonyme
Te fait pas chier à mettre à jour , je vais t'envoyer des bugs :D


le 1° iFog() ne fonctionne pas.

Publié : jeu. 20/août/2009 11:08
par Anonyme
iGetDeltaMouseX() & iGetDeltaMouseY() ne fonctionne toujours pas correctement. même si la souris est sur un des bords de l'écran , mousedelta doit renvoyer (en pixel) le mouvement effectuer par la souris , pas le curseur.

Publié : jeu. 20/août/2009 11:38
par Anonyme
je viens de faire le tour des fonctions "physique" , il n'est pas possible de récuperé la force exercé sur un body ou un joint

je m'explique :

Imagine que je créer un body statique
un second plus bas , qui lui est dynamique
les 2 body sont relié par des joints qui simule des cordes
je voudrais pouvoir casser les cordes en fonction du poids que j'exerce sur le second body.

Bien sur , je peut "bricolé" des fonctions , je teste tout les body qui sont en collisions , je recupère la masse et la vélocité de chacun , je détermine le poids avec une formule que je ne connais pas encore.
Je suppose que newton propose déjà se genre de fonction , non ?



edit:


Bug avec les collisions et les cylindres :

Code : Tout sélectionner

*cylinder = iCreateCylinder(1,5,$00FFFFFF,16)
iRotatenode(*cylinder,0,0,90)
 iPositionNode(*cylinder,0,5.5,0)
iSetCollideForm(#CYLINDER_PRIMITIVE)
*dyn_cylinder = iCreateBody(*cylinder)
iMassBody(*dyn_cylinder,100)

il faut que la masse soit >= 100 pour bien voir le bug.

edit2 : Pareil pour les cones

Publié : jeu. 20/août/2009 17:37
par tmyke
Pour ce qui est de Ifog, je ne semble pas rencontrer de soucis, par exemple le sample043
tourne apparement sans soucis, dans les deux cas de fog généré.
Sinon, as-tu un petit sample metant en évidence ce qui cloche.

Cpl.Bator a écrit :iGetDeltaMouseX() & iGetDeltaMouseY() ne fonctionne toujours pas correctement. même si la souris est sur un des bords de l'écran , mousedelta doit renvoyer (en pixel) le mouvement effectuer par la souris , pas le curseur.
J'avoue ne pas trop saisir la subtilité, j'suis dur à la détente, on en avait déjà parlé effectivement,
mais je toujours pas capté quel comportement devait avoir cette fonction exactement :(
A l'heure actuelle elle se contente de fournir l'écart entre l'ancienne position de la souris et la position
de celle-ci au moment de l'appel de la fonction iGetDelta...().
Cpl.Bator a écrit :je viens de faire le tour des fonctions "physique" , il n'est pas possible de récupéré la force exercé sur un body ou un joint...
Effectivement, je vais voir pour ajouter tout cela. Il manque encore quelques fonctions physique, je m'en occupe,
cela devrait être dispo avant la fin du WE normalement.

Je regarde aussi cette histoire de bug sur les Cones et Cylindres.

Publié : jeu. 20/août/2009 18:05
par Anonyme
Avec le terrain , le fog marche bien , pas avec des nodes simple :

Code : Tout sélectionner

IncludePath "includes"   :   IncludeFile "n3xtD_PB.pbi"

ExamineDesktops()
iCreateGraphics3D(DesktopWidth(0),DesktopHeight(0),DesktopDepth(0),#False)



iSetWorldSize(-1000,-1000,-1000,1000,1000,1000)


iAmbientLight($FFCACACA)
Global *Light = icreatelight($FFFFFFFF,3000)
iAttenuationLight(*Light, 1, 1.0/3000, 0)
iPositionNode(*Light,2000,2000,2000)






*Ground = iCreateCube()
*Geometry = iMeshGeometry(*Ground)
iScaleMeshBuffer(*Geometry,10000,1,10000)

iSetCollideForm(#BOX_PRIMITIVE)
*Ground_Body = iCreateBody(*Ground,#False)





*Cone = iCreateCone()
iRotatenode(*Cone,0,0,90)
iPositionNode(*Cone,0,5.5,0)
iSetCollideForm(#CONE_PRIMITIVE)
*dyn_cone = iCreateBody(*Cone)





*Camera = iCreateCamera()
iPositionNode(*Camera,10,10,10)
iPointTargetNode(*Camera,0,0,0)
iFOVCamera(*Camera,120)



;----------------------------------------
; linear fog
iFog( $00ffffcc, #True,  100.0, 600.0)
;iFog( $00ffeeff, #False,  0, 0, 0.0051)



Repeat
  
iUpdatePhysic(0.5)




	; if Escape Key, exit	
  If iGetKeyDown(#KEY_ESCAPE)
    Quit=1
  EndIf


  If iGetKeyDown(#KEY_ARROW_UP)
    iMoveNode(*Camera, 0,0,0.5)
  EndIf
  If iGetKeyDown(#KEY_ARROW_DOWN)
    iMoveNode(*Camera, 0,0,-0.5)
  EndIf
  If iGetMouseEvent(#MOUSE_BUTTON_LEFT)
  		If flagXDown=0
  			omx.f = iGetMouseX()
  			omy.f = iGetMouseY()
  			flagXDown=11
  		Else
  			moy.f = iGetMouseY()-omy
  			angley.f=(moy/10.0)
  			omy.f= iGetMouseY()
  			mox.f = iGetMouseX()-omx
  			anglex.f=(mox/10.0)
  			omx.f= iGetMouseX()
  			iTurnNode(*Camera, angley, anglex,0)
  		EndIf
  Else
  	 		flagXDown=0
  EndIf




camPos.VECTOR3
camDir.VECTOR3

   ; shoot with cube
   If iGetKeyUp(#KEY_SPACE)
     iNodePosition(*Camera, @camPos\x)
     iNodeDirection(*Camera, @camDir\x)
     ; create mesh to shoot
     *cube.IMesh = iCreateSphere(1,20)
     iPositionNode(*cube, camPos\x,camPos\y,camPos\z)
     iRotateNode(*cube, Random(180),Random(180),Random(180))    
     ; create body, no dynamique
     iSetCollideForm(#SPHERE_PRIMITIVE)
     *body.IBodySceneNode = iCreateBody(*cube)
     iVelocityBody(*body, camDir\x*150, camDir\y*150, camDir\z*150)




   EndIf


  iBeginScene(192,192,255)
     iDrawScene()
  iEndScene()



Until Quit=1

iFreeEngine()
ajoute la masse de 100 ou 200 au cone aussi pour voir le bug.


en ceux qui concerne les deltas de la souris , c'est lorsque le curseur est sur un des bords de l'écran , imagine la gauche et que je bouge le curseur vers la gauche , le deltax est = à 0 , alors que je bouge ma souris vers la gauche ! ( le curseur ( la bebete que tu vois à l'écran , la souris ( ce que tu as dans la main ) ) le delta doit renvoyer la valeur du mouvement de la souris , pas du curseur ! imagine que je code un fps , je suis dans la merde pour faire un 360 ! ;)

Publié : jeu. 20/août/2009 19:10
par tmyke
Je regarde tout cela, pour que cela soit réglé lors de la prochaine update.

Par contre, pour ce qui est du FOG, en fait ce n'est pas un bug, si tu veux qu'un node réagisse
au fog, il faut le spécifier, et donc ecrire iMaterialFlagNode(*node, #EMF_FOG_ENABLE, #True)

Avec le code ci-dessus, cela fonctionne bien ;)

Publié : sam. 22/août/2009 16:10
par Anonyme
ICreateTexture() renvois toujours 0

Publié : sam. 22/août/2009 18:10
par tmyke
Bizarre, sous windows et sur 3 machines différentes, je n'ai pas ce soucis.
J'ai bien un pointer de créé et de renvoyé :?