Babylon.sbi : debugger une scène

Rubriques generale concernant SpiderBasic
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Babylon.sbi : debugger une scène

Message par falsam »

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 : Tout sélectionner

...
;Debug
 SceneDebug()

 RenderLoop(@RenderGame())
...
Exemple avec ce code.

Code : Tout sélectionner

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
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Babylon.sbi : debugger une scène

Message par djes »

Super ! 8O
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Re: Babylon.sbi : debugger une scène

Message par Cool Dji »

:D

C'est vraiment génial, la plus value que tu apportes à SpiderBasic en mode 3D !!
Only PureBasic makes it possible
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Babylon.sbi : debugger une scène

Message par Kwai chang caine »

Rien compris, mais c'est splendide 8O
Merci 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre