PureBasic
https://www.purebasic.fr/french/

Babylon.sbi : debugger une scène
https://www.purebasic.fr/french/viewtopic.php?f=25&t=17073
Page 1 sur 1

Auteur:  falsam [ Jeu 30/Nov/2017 0:52 ]
Sujet du message:  Babylon.sbi : debugger une scène

SceneDebug()

Image

La fonction SceneDebug() ajoute un panneau latéral droit sur votre écran.

Vous trouverez presque toutes les fonctionnalités de la couche de débogage : Mesh, textures, materiels, lumieres, etc ...

Toutes les propriétés sont rafraîchies presque en temps réel toutes les 200ms pour des raisons de performances.

Vous pouvez mettre à jour n'importe quelle valeur string, nombres ou booléens en cliquant dessus et en appuyant sur la touche entrée.

Démonstration avec ce lien.
http://falsam.com/sbbjs/scenedebug.html

Exemple : Décocher Diffuse Texture et/ou Bump Texture.

Mise en oeuvre.
SceneDebug() est à placé après la description de votre scène et avant le rendu de celle-çi.
Code:
...
;Debug
SceneDebug()

RenderLoop(@RenderGame())
...


Exemple avec ce code.
Code:
EnableExplicit

IncludeFile "babylon/babylon.sbi"

Global Assets.s = "data/textures/"
Global Scene, Camera, Light0, Light1
Global Ground, GroundTex, GroundBump, GroundMat
Global Box0, Box1, BoxTex, BoxMat

Declare LoadGame()
Declare RenderGame()

UseModule BJS
InitEngine(@LoadGame())

Procedure LoadGame()
  Scene = CreateScene()
  If Scene
   
    ClearScene(RGB(0,0,0))
   
    ;Camera physic (Player)
    Camera = CreateCamera("camera", 0, 16, 40, #BJS_Free)
    CameraBodySize(Camera, 2, 8, 2)
       
    ;Light
    Light0 = CreateLight("General", 0, 200, 0, 0.7, #BJS_Point)
    SetLightColor(Light0, #BJS_Diffuse, RGB(12, 12, 12))
   
    Light1 = CreateLight("spot", 0, 15, 0, 1, #BJS_Spot)
    SpotLightRange(Light1, 3, 8)
    SetLightColor(Light1, #BJS_Diffuse, RGB(255, 255, 255))
   
    ;Ground
    Ground = CreatePlane("ground", 200, 200)
    GroundTex = LoadTexture("ground", Assets, "floor.png")
    GroundBump = LoadTexture("ground bump", Assets, "floor_bump.PNG")
    GroundMat = CreateMaterial("ground")
    SetMaterialTexture(GroundMat, #BJS_Diffuse, GroundTex)
    ScaleMaterial(GroundMat, 16, 16)
    SetMaterialTexture(GroundMat, #BJS_Bump, GroundBump)
    SetMeshMaterial(Ground, GroundMat)
    RotateMesh(Ground, 90, 0, 0)   
   
    ;Box
    Box0 = CreateBox("box0", 5, 5, 5)
    MoveMesh(Box0, 0, 2.5, 0)
    BoxTex = LoadTexture("crate", Assets, "crate.png")
    BoxMat = CreateMaterial("crate")
    SetMaterialTexture(BoxMat, #BJS_Diffuse, BoxTex)
    SetMaterialColor(BoxMat, #BJS_Emissive, RGB(50, 50, 50))
    SetMeshMaterial(Box0, BoxMat)
   
    ;Copy Box0 -> Box1
    Box1 = CloneMesh(Box0, "box1")
    MoveMesh(Box1, 1, 7.5, 0)
    RotateMesh(Box1, 0, 45, 0)
       
    ;Shadows
    InitShadow(Light0)
    ShadowEmitter(Box0)
    ShadowEmitter(Box1)
    RenderShadows(Ground)
   
    ;Debug
    SceneDebug()
   
    RenderLoop(@RenderGame())
  EndIf
EndProcedure

Procedure RenderGame()
  RenderWorld()
EndProcedure

Auteur:  djes [ Jeu 30/Nov/2017 9:13 ]
Sujet du message:  Re: Babylon.sbi : debugger une scène

Super ! 8O

Auteur:  Cool Dji [ Jeu 30/Nov/2017 17:33 ]
Sujet du message:  Re: Babylon.sbi : debugger une scène

:D

C'est vraiment génial, la plus value que tu apportes à SpiderBasic en mode 3D !!

Auteur:  Kwai chang caine [ Mar 05/Déc/2017 12:19 ]
Sujet du message:  Re: Babylon.sbi : debugger une scène

Rien compris, mais c'est splendide 8O
Merci 8)

Page 1 sur 1 Heures au format UTC + 1 heure
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/