Page 39 sur 48

Re: [n3xt-D] un moteur pour PureBasic

Publié : mar. 13/oct./2009 19:14
par tmyke
Cpl.Bator a écrit :Ouais , mais fait vite quoi !
j'ai pas que ca à foutre de t'attendre ! :twisted:
je rigole hein ! bon app ;)
merci...

tant pis alors, je finis mon fromage sur le clavier, me femme m'apporte ma part de gâteau et mes filles sont partie me préparer mon café avec
leur pyjama '3D with PB without N3xtD is for loosers' brodé dans le dos ...


Bon, pour revenir à nos moutons, en fait j'ai refais sebsiblement le même code, mais en passant par les
fonctions GUI de N3xtD.
Cela donne ceci (basé sur le code précedent, a quelques lignes près) :

Code : Tout sélectionner

; Include files 
IncludePath "includes"   :   IncludeFile "n3xtD_PB.pbi"



; Globales
Global	anglex.f, angley.f, flagXDown.w
Global	mox.f, omx.f, moy.l, omy.l

Global *app.l, Quit.l


;----------------------------------------------------------
; open n3xt-D screen
*app = iCreateGraphics3D(800,600)
; << OR >>
;*app = iCreateGraphics3D(800,600, 32, #False, #True, #EDT_DIRECT3D9)
If *app= #Null
  End
EndIf
 
 
  SetCurrentDirectory("media/") 

;-----------------------------------------
; set ambient light
; iAmbientLight( color.l=$ffaaaaaa)
;----------------------------------------
; create light and set position
 *light.ILight = iCreateLight($ffffffff, 45)
 iPositionNode(*light, 0,30,10)



; turn off MipMap
iTextureCreation( #ETCF_CREATE_MIP_MAPS, #False )

;----------------------------------------
 ; load 3D objects 
  Global *obj1.IObject = iLoad3DObject("plane.3ds")
  Global *obj2.IObject = iLoad3DObject("earth.x")



;-----------------------------------------
; create plane
*plane.IMesh =  iCreateMesh(*obj1)

;-----------------------------------------
; create tiger
Global *sphere.IMesh =  iCreateMesh(*obj2)
iPositionNode(*sphere, 0,0.5,5)
iScaleMeshBuffer(iMeshGeometry(*sphere), 1.5,1.5,1.5)


;-----------------------------------------
; create first  camera
Global *cam.ICamera = iCreateCamera( )
iPositionNode(*cam, 0,10,-15)
iTurnNode(*cam, 15,0,0)

;-----------------------------------
; load font png
iLoadFont("courriernew.png")
Global *font.IGUIFont = iGetFont()



iPointNode(*cam, *sphere)

;-----------------------
; create GUI Image
*logo.ITexture = iLoadTexture("logo_128.png")
*img.IGUIImage = iAddImageGUI(*logo, 0,15,#True, "text")

iColor_GUIImage(*img, $55ffffff )



; ---------------------------------------
;           main loop
; ---------------------------------------
Repeat
    
 	; control earth
  If iGetKeyDown(#KEY_ARROW_UP)
    iTranslateNode(*sphere, 0,0,0.5)
    iPointNode(*cam, *sphere)
  EndIf
  If iGetKeyDown(#KEY_ARROW_DOWN)
    iTranslateNode(*sphere, 0,0,-0.5)
    iPointNode(*cam, *sphere)
  EndIf
  If iGetKeyDown(#KEY_ARROW_RIGHT)
    iTranslateNode(*sphere, 0.5,0,0)
    iPointNode(*cam, *sphere)
  EndIf
  If iGetKeyDown(#KEY_ARROW_LEFT)
    iTranslateNode(*sphere, -0.5,0,0)
    iPointNode(*cam, *sphere)
  EndIf
  If iGetKeyDown(#KEY_KEY_R)
    iTranslateNode(*sphere, 0,0.5,0)
    iPointNode(*cam, *sphere)
  EndIf
  If iGetKeyDown(#KEY_KEY_F)
    iTranslateNode(*sphere, 0,-0.5,0)
    iPointNode(*cam, *sphere)
  EndIf
  
  
  
	; move camera with dir key and mouse (left click)
  If iGetMouseEvent(#MOUSE_BUTTON_LEFT)
  		If flagXDown=0
  			omx = iGetMouseX()
  			omy = iGetMouseY()
  			flagXDown=11
  		Else
  			moy = iGetMouseY()-omy
  			angley=(moy/10.0)
  			omy= iGetMouseY()
  			mox = iGetMouseX()-omx
  			anglex=(mox/10.0)
  			omx= iGetMouseX()
  			iTurnNode(*cam, angley, anglex,0)
  		EndIf
  Else
  	 		flagXDown=0
  EndIf


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



  xx.l = iProjectedX(*sphere)
  yy.l = iProjectedY(*sphere)

  	; ---------------
  	;      Render
  	; ---------------
  iBeginScene()
    iDrawScene()
    iDrawGUI()
    iDrawText(*font, "DirKey and R/F for move earth",  10,10,0,0, $ff00ffff)

    iRelativePositionGUI(*img, xx,yy)

  iEndScene()

Until Quit=1
; end
iFreeEngine()

Re: [n3xt-D] un moteur pour PureBasic

Publié : mar. 13/oct./2009 19:23
par Anonyme
Impec , mais faut vraiment simplifier le passage 2D/3D. les sprites 3D sont indispensable pour les effets de blending , ce que ne fait pas la gui ou les images , et je peut faire des rendus séparément comme dans ton exemples de mix 2d / 3d.
je met le lens flare de coté et je continue de codé ma petite démo en attendant une éventuelle commande iBegin2D :mrgreen:

Re: [n3xt-D] un moteur pour PureBasic

Publié : mar. 13/oct./2009 19:32
par tmyke
Cpl.Bator a écrit :... en attendant une éventuelle commande iBegin2D :mrgreen:
Je vais reprendre cette partie dévolue à la 2D sur ce point, et fournir à la fois des fonctions simples et efficaces,
pour pouvoir realiser un éventail de choses importantes...
Des new's d'ici quelques jours ;)

Re: [n3xt-D] un moteur pour PureBasic

Publié : mar. 13/oct./2009 20:42
par Anonyme
ca marche bien quand même :D

Image


Par contre , j'aurais bien voulu regler la taille de la skybox ( un peu trop grande à mon gout )
et de pouvoir "dessiner" dans la skybox , càd de mettre une planète 3D qui tourne avec du bump, mais qui fasse parti de la skybox.
on peut déjà le faire en gardant une distance égale à la caméra mais bon , pas top :D

Re: [n3xt-D] un moteur pour PureBasic

Publié : mer. 14/oct./2009 22:12
par comtois
Pour info, j'ai ajouté n3xtd sur dvp
http://purebasic.developpez.com/outils/?page=m3d#N3XTD

Si tu as des remarques, n'hésite pas :)

Re: [n3xt-D] un moteur pour PureBasic

Publié : mer. 14/oct./2009 23:03
par Anonyme
j'ai qu'une remarque , tu m'épates :D
tu fait vivre à toi tout seul le Forum , loin là bas , dans le froid glacial de dvp :D
je viendrais plus souvent dorénavant :wink:

Re: [n3xt-D] un moteur pour PureBasic

Publié : jeu. 15/oct./2009 8:40
par comtois
Je ne suis plus tout seul, progi1984 donne un sacré coup de pouce !
Il vient encore d'écrire un tuto.

Re: [n3xt-D] un moteur pour PureBasic

Publié : jeu. 15/oct./2009 8:43
par Anonyme
En parlant de tuto , j'ai jamais rien compris à la conception d'un article , mis à part que c'est en xml , et c'est une vrai merde pour s'y retrouvé... :roll:

Re: [n3xt-D] un moteur pour PureBasic

Publié : jeu. 15/oct./2009 8:54
par comtois
Je t'invite à poursuivre cette discussion sur les forums de dvp, on a assez débordé du sujet initial de ce post :P

Tmyke, je songe toujours à retranscrire PureBlock avec N3xtD, je suis pas mal pris par ailleurs, mais ça reste dans un coin de ma tête, faudra que ça sorte un jour en le codant :)

Re: [n3xt-D] un moteur pour PureBasic

Publié : jeu. 15/oct./2009 10:21
par Anonyme
@Tmyke

Je me suis fait un petit loader qui lit un script txt , et qui charge les medias.
ca marche , sauf lorsque je "thread" ma fonction de chargement.
J'ai codé que le chargement de skybox pour le moment , les textures devienne blanche...
comme si elle sont libérer en fin de thread...
vraiment bizarre

Re: [n3xt-D] un moteur pour PureBasic

Publié : jeu. 15/oct./2009 19:04
par Ollivier
@TMyke

Salut, en tentant de redownloader N3xtD, j'ai une erreur à l'exécution du sample n° 001:

L'application n'a pas pu s'initialiser correctement (0xC0150002). Cliquer sur OK pour arrêter l'application.

J'ai rajouté un End comme ceci:

Code : Tout sélectionner

; Include files 
End
IncludePath "includes"   :   IncludeFile "n3xtD_PB.pbi"
Mais c'est exactement la même erreur...

Re: [n3xt-D] un moteur pour PureBasic

Publié : ven. 16/oct./2009 12:32
par Anonyme
il y a bien la dll a coté du fichier .pb que tu compiles , et la lib rangé dans les userlibs du compilo purebasic ?

Re: [n3xt-D] un moteur pour PureBasic

Publié : ven. 16/oct./2009 18:15
par Ollivier
@Cpl.Bator

Oui, et vu que j'ai déjà vu fonctionner le moteur il y a quelques temps, je soupçonne l'une des nouvelles fonctionnalités (notamment du côté de la GUI, j'ai déjà un plantage chronique des fonctions natives Gadget3D et Window3D).

J'espère que TMyke garde ses anciennes archives: celle qui avait seulement une douzaine d'exemples peut suffire.

Re: [n3xt-D] un moteur pour PureBasic

Publié : sam. 17/oct./2009 8:23
par tmyke
Bon, allez, après quelques jours d'absence, retour aux affaire ;)
Comtois a écrit :Pour info, j'ai ajouté n3xtd sur dvp
http://purebasic.developpez.com/outils/?page=m3d#N3XTD

Si tu as des remarques, n'hésite pas
extrat, je vais potasser cela, et je ne manquerais pas de faire des commentaires ;)
Comtois a écrit :Tmyke, je songe toujours à retranscrire PureBlock avec N3xtD, je suis pas mal pris par ailleurs, mais ça reste dans un coin de ma tête, faudra que ça sorte un jour en le codant :)
j'attends avec impatience, mais je sais que tu es pas mal pris, donc chaque chose en son temps ;).

Cpl.Bator a écrit :Je me suis fait un petit loader qui lit un script txt , et qui charge les medias.
ca marche , sauf lorsque je "thread" ma fonction de chargement.
J'ai codé que le chargement de skybox pour le moment , les textures devienne blanche...
comme si elle sont libérer en fin de thread...
vraiment bizarre
oui, bizarre, cela ne serait pas un soucis de path au chargement des fois (même si je pense que tu y a déjà pensé) ?

Ollivier a écrit :Salut, en tentant de redownloader N3xtD, j'ai une erreur à l'exécution du sample n° 001...
tu trouvera probablement une explication ici:
http://www.purebasic.fr/english/viewtop ... &start=120

Sinon, j'ai repris les fonctions concernant les Sprite3D, avec un management dédié, donc beaucoups plus
simplet et ouvert.
Je vois ce que je peux faire au niveau des Skybox suite à tes remarques Cpl.Bator.

Re: [n3xt-D] un moteur pour PureBasic

Publié : sam. 17/oct./2009 12:02
par Anonyme
oui, bizarre, cela ne serait pas un soucis de path au chargement des fois (même si je pense que tu y a déjà pensé) ?
Vala une archive :
http://rapidshare.com/files/294153637/BugN3xtd.rar.html
Change la ligne 34

Code : Tout sélectionner

is_Threaded = #False ; #True 
:wink: