Publié : mer. 01/nov./2006 20:50
Je commence par PointEntity() et dans la foulé si je peux embrayer sur
CemaraPoursuit(), je le fais...

CemaraPoursuit(), je le fais...

Code : Tout sélectionner
IncludePath "Include\"
IncludeFile "d3dx9.pbi"
IncludeFile "dreamotion3d.pbi"
Global *camera.CEntity
Global *mesh.CEntity
Global *Sphere.CEntity
; first init
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
End
EndIf
;-------------------
; 3D engine init
;-------------------
ScreenWidth.l = 800
ScreenHeight.l = 600
ScreenDepth.l = 32
OpenScreen(ScreenWidth, ScreenHeight, ScreenDepth, "Dreamotion3D...")
DM_InitGraphics(ScreenID(), ScreenDepth, 1, 1)
;----------------------------
;-ça sert à quoi ces trucs ??
;----------------------------
*DM_d3d9 = DM_GetD3D9()
*DM_d3dDev9 = DM_GetDevice9()
DM_WIDTH = ScreenWidth
DM_HEIGHT = ScreenHeight
SetCurrentDirectory("medias/")
;------------------------
; load a B3D file
*mesh = DM_LoadAnimEntity("SacredPlace.b3d", #Null, #False)
*Sphere = DM_CreateSphere()
DM_PositionEntity(*Sphere, 20, 20, 0)
;- camera
*camera = DM_CreateCamera(#Null)
DM_TranslateEntity(*camera, 0, 25, -300)
DM_CameraClsColor(*camera, 0, 0, 0)
; DM_CameraRange(*camera, 0, 15000) ; aucun effet pour mon problème d'affichage!
;-----------------------------
; ------- main loop --------
;------------------------------
Repeat
ExamineKeyboard()
DM_TurnEntity(*camera, 0, 0.5, 0)
DM_BeginScene()
DM_RenderWorld()
DM_EndScene()
Until KeyboardPushed(#PB_Key_Escape)
DM_ClearGraphics()
End
Tiens c'est la saison des revenantscederavic a écrit :En plus, ça m'a vivement redonné gout la programmation (surtout graphique -> 3D). Je vais étudier plus en profondeur votre moteur, et essayé d'en tirer un maximum tout en le testant.
Code : Tout sélectionner
; Fichiers Include
IncludePath "include\"
IncludeFile "d3dx9.pbi"
IncludeFile "dreamotion3d.pbi"
Enumeration
#Win_main
#Win_new
#Gadget_Panel
#Gadget_NewOk
#Gadget_NewAnnuler
#Gadget_NewTxtQuad
#Gadget_NewTxtFacette
#Gadget_NewTxtSize
#Gadget_NewIllustration
#Gadget_NewSpinFacette
#Gadget_NewSpinSize
#Gadget_NewSpinQuad
#Menu_New
#Menu_Quit
#Menu_Save
#Menua_SaveAS
#ImgIllustration
EndEnumeration
Global *camera.CEntity
Global *brush.CBrush
Global *texture.CTexture
; Initialisation des différents modules
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
End
EndIf
UsePNGImageDecoder()
LoadImage(#ImgIllustration, "include\ilustation.png")
Procedure NewSceneWindows()
OpenWindow(#Win_new,0,0,490,310,"Nouvelle Scene", #PB_Window_WindowCentered )
DisableWindow(#Win_main, 1)
If CreateGadgetList(WindowID(#Win_new))
TextGadget(#Gadget_NewTxtQuad, 10, 10, 190, 20, "Nombre de quad" +Chr(9)+" :", #PB_Text_Center)
TextGadget(#Gadget_NewTxtFacette, 10, 60, 190, 20, "Facette par quad :", #PB_Text_Center)
TextGadget(#Gadget_NewTxtSize, 10, 110, 190, 20, "Taille" +Chr(9) +Chr(9)+" :", #PB_Text_Center)
ImageGadget(#Gadget_NewIllustration, 200, 5, 260, 260, ImageID(#ImgIllustration))
SpinGadget(#Gadget_NewSpinQuad, 50, 30, 100, 20, 2, 512 ,#PB_Spin_Numeric)
SpinGadget(#Gadget_NewSpinFacette, 50, 80, 100, 20, 2, 512 ,#PB_Spin_Numeric)
SpinGadget(#Gadget_NewSpinSize, 50, 130, 100, 20, 1, 10000 ,#PB_Spin_Numeric)
SetGadgetText(#Gadget_NewSpinQuad, "16")
SetGadgetText(#Gadget_NewSpinFacette, "16")
SetGadgetText(#Gadget_NewSpinSize, "2048")
ButtonGadget(#Gadget_NewOk, 10, 270, 80, 30, "Ok")
ButtonGadget(#Gadget_NewAnnuler, 110, 270, 80, 30, "Annuler")
Else
End
EndIf
EndProcedure
winID.l=OpenWindow(#Win_main,0,0,800,600,"Yame 3D editor", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
If winID
If CreateGadgetList(WindowID(#Win_main))
PanelGadget (#Gadget_Panel, 600, 0, 200, 600 - MenuHeight())
AddGadgetItem (#Gadget_Panel, -1, "Scene")
AddGadgetItem (#Gadget_Panel, -1, "Elements")
EndIf
If CreateMenu(0, WindowID(#Win_main))
MenuTitle("&Projet")
MenuItem(#Menu_New, "Ouvrir" +Chr(9)+"Ctrl+O")
MenuItem(#Menu_Save, "Enregistrer" +Chr(9)+"Ctrl+E")
MenuItem(#Menua_SaveAS, "Enregistrer sous"+Chr(9)+"Ctrl+R")
MenuItem(#Menu_Quit, "Fermer" +Chr(9)+"Ctrl+F")
MenuTitle("&Edition")
MenuTitle("&Option")
MenuTitle("&Aide")
EndIf
OpenWindowedScreen(WindowID(#Win_main), 0, 0, 600, 600 - MenuHeight(), 0, 0, 0)
res= DM_InitGraphics(winID, 32, 0 ,0)
*DM_d3d9 = DM_GetD3D9()
*DM_d3dDev9 = DM_GetDevice9()
DM_WIDTH = 600
DM_HEIGHT = 600 - MenuHeight()
EndIf
DM_AmbiantLight(125, 125, 125)
*camera = DM_CreateCamera(#Null)
DM_MoveEntity(*camera, 0,0,-50.0)
DM_CameraClsColor(*camera, 125, 125, 125)
;DM_CameraProjRatio(*camera, 600,600 - MenuHeight(), 800)
;DM_CameraViewPort(*camera, 0, 0, 600, 600 - MenuHeight())
NewSceneWindows()
Repeat
Event.l = WindowEvent()
Select Event
;-Event gadget
Case #PB_Event_Gadget
Select EventGadget()
;Annuler nouvelle scene
Case #Gadget_NewAnnuler
CloseWindow(#Win_new)
DisableWindow(#Win_main, 0)
;Nouvelle Scene
Case #Gadget_NewOk
DM_SetTerrain(Val(GetGadgetText(#Gadget_NewSpinQuad)), Val(GetGadgetText(#Gadget_NewSpinFacette)), Val(GetGadgetText(#Gadget_NewSpinSize)))
SetCurrentDirectory("include/")
DM_CreateTerrain("hm.bmp", 1)
*brush = DM_QuadBrush(0)
; Etablit la premiere texture
*texture = DM_GetTexture(*brush, 0)
DM_LoadTexture(*texture, "backcolor.bmp")
; Etablit la seconde texture
*texture = DM_GetTexture(*brush, 1)
DM_LoadTexture(*texture, "grille.bmp")
; Répercute sur les brushs de tous les Quad
DM_MultiQuadBrush(0, 16, *brush)
CloseWindow(#Win_new)
DisableWindow(#Win_main, 0)
EndSelect
;-Event menu
Case #PB_Event_Menu
Select EventMenu()
Case #Menu_New
NewSceneWindows()
Case #Menu_Quit
End
EndSelect
EndSelect
DM_BeginScene()
DM_RenderWorld()
DM_EndScene()
;Delay(1)
Until Event = #PB_Event_CloseWindow
DM_ClearGraphics()
End
et bien !! bien le bonjour ced, ca fait plaisir de te savoir par là.cederavic a écrit :Hello!
Voila un bon bout de temps que j'ai pas toucher à PB, [...]
Bref, voila un ptit message pour faire coucou à tout les "vieux du forum" que j'apprecie, et un merci à votre équipe.
non pas pour le moment, je veux finir correctement le format B3D. Ceci dit, c'est une optionComtois a écrit :A ce sujet, as-tu prévu de supporter le format mesh d'ogre ?
je reprend cela dans la journée, j'ai du faire une impasse quelque part...Comtois a écrit :Bizarre, avec l'export au format mesh je trouve 28456 vertices et 9552 triangles...
J'suis pas très fort en ce qui concerne les gadgets, et au départ je ne suis pas trop rentrécha0s a écrit :le problem est que le panel gagdet disparait sous le rendue de la scene or quand
je suprime le rafraichissement de D3D j'obtient...
Tu peux peut-être jeter un oeil du côté du code d'irrlicht?tmyke a écrit :Ceci dit, c'est une option qui m'interresse, mais je ne connais pas du tout les spécifications du format ogre. Si
quelqu'un dans les parages connait bien ce format, qu'il le dise, en travaillant ensemble,
alors cela pourrait aller asser vite, du moins pour la partie statique...
Currently supported mesh file formats:
* 3D Studio meshes (.3ds)
* B3D files (.b3d)
* Alias Wavefront Maya (.obj)
* Cartography shop 4 (.csm)
* COLLADA (.xml, .dae)
* DeleD (.dmf)
* FSRad oct (.oct)
* Irrlicht scenes (.irr)
* Microsoft DirectX (.x) (binary & text)
* Milkshape (.ms3d)
* My3DTools 3 (.my3D)
* OGRE meshes (.mesh)
* Pulsar LMTools (.lmts)
* Quake 3 levels (.bsp)
* Quake 2 models (.md2)