Babylon.sbi : Bump Texture

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 : Bump Texture

Message par falsam »

Guillot dans un autre topic a écrit :c'est pas du bump, helas on à pas ça en PB (sauf à utiliser les scripts),
un exemple de de bump texture avec SpiderBasic et Babylon.sbi

:arrow: Démonstration http://falsam.com/sbbjs/bumptexture.html

Création de la sphère d'un rayon de 8 unités

Code : Tout sélectionner

Sphere = CreateSphere("sphere", 8)
Création d'un material qui contiendra deux textures : Une pour le sol et une pour le bump

Code : Tout sélectionner

Material = CreateMaterial("ground")
-Texture de sol
Image

-Texture de bump
Image

Ajouter la texture de sol au material

Code : Tout sélectionner

Texture = LoadTexture("Data/textures/floor.png")
SetMaterialTexture(Material, #BJS_Diffuse, Texture)
Ajouter la texture de bump au material

Code : Tout sélectionner

Texture = LoadTexture("Data/textures/floor_bump.PNG")
SetMaterialTexture(Material, #BJS_Bump, Texture)
Et enfin texturer la sphère avec le material

Code : Tout sélectionner

SetMeshMaterial(Sphere, Material)
Le code complet de cette exemple

Code : Tout sélectionner

;Babylon.sbi - Bump Texture
EnableExplicit

IncludeFile "babylon/babylon.sbi"
UseModule BJS

Global Scene, Camera, Sphere, Material, Texture

Declare LoadGame()
Declare RenderGame()

InitEngine(@LoadGame())

Procedure LoadGame()    
  Scene = CreateScene()
  If Scene
    Camera = CreateCamera("camera", 0, 10, 20, #BJS_ArcRotate)
    ClearScene(RGB(128, 128, 128))
    CreateLight("light", 0, 20, 0, 0.8)
    
    Sphere = CreateSphere("sphere", 8)
    Material = CreateMaterial("ground")
    
    Texture = LoadTexture("Data/textures/floor.png")
    SetMaterialTexture(Material, #BJS_Diffuse, Texture)
    
    Texture = LoadTexture("Data/textures/floor_bump.PNG")
    SetMaterialTexture(Material, #BJS_Bump, Texture)
    
    SetMeshMaterial(Sphere, Material)
    
    RenderLoop(@RenderGame())
  EndIf
EndProcedure

Procedure RenderGame()
  RotateMesh(Sphere, 0.5, 0.5, 0.5, #PB_Relative)
  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
Guillot
Messages : 522
Inscription : jeu. 25/juin/2015 16:18

Re: Babylon.sbi : Bump Texture

Message par Guillot »

pinaise !
je donnerai beaucoup pour avoir ça en PB!

mais j'ai l'impression que le bump de babylone est buggé: on à l'impression que la source lumineuse se déplace, tu trouve pas ?
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Babylon.sbi : Bump Texture

Message par Micoute »

Moi, je ne pense pas, je crois plutôt que cet effet est du au sens des stries sur la surface de l'objet.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Babylon.sbi : Bump Texture

Message par Ar-S »

Du coup pourquoi nen peut on pas en pb ? Les 2 langages sont censés être similaires. Tu as fait çà en js ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Babylon.sbi : Bump Texture

Message par falsam »

Ar-S a écrit :Du coup pourquoi nen peut on pas en pb ?
Parce que la la 3D de SpiderBasic n'existe pas. Babylon.sbi est un module que j'ai codé pour ajouter cette couche 3D à SpiderBasic.
Ar-S a écrit :Les 2 langages sont censés être similaires.
Hormis la 3D les ordres sont les memes quand ils existent. Par exemple MessageRequester() n'existe pas.

Par contre la manière de coder n'est pas la même. Un exemple il n'y a plus de boucle événementielle avec SpiderBasic.

Code : Tout sélectionner

OpenWindow(0, 0, 0, 0, 0, "test", #PB_Window_Background)
Ce code est fonctionnel sans Repeat : WaitWindowEvent() : ForEver

Tu remarqueras aussi le flag #PB_Window_Background qui permet d'avoir une fenetre fullscreen.
Tu as fait çà en js ?
Oui et non.

Chaque fonction génère du JavaScript. C'est le fonctionnement de l'ensemble des fonctionnalités de SpiderBasic concu principalement avec le framework Dojo.js et quelques framework JQuery.

Pour répondre à ta question, Babylon.sbi est concu avec SpiderBasic et le framework babylon.js

Pour ce rendu je n'utilise donc pas de JavaScript comme tu as pu le voir dans le code du premier message. Par contre Je génére du JavaScript au moment de la compilation.
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%
Fred
Site Admin
Messages : 2648
Inscription : mer. 21/janv./2004 11:03

Re: Babylon.sbi : Bump Texture

Message par Fred »

Sympa la demo !
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Babylon.sbi : Bump Texture

Message par falsam »

Guillot a écrit :pinaise !
je donnerai beaucoup pour avoir ça en PB!

mais j'ai l'impression que le bump de babylone est buggé: on à l'impression que la source lumineuse se déplace, tu trouve pas ?
Non c'est parce que tu déplaces la scène avec la souris. Il manque un décors pour s'en rendre compte. Je vais refaire la démo je pense.
Fred a écrit :Sympa la demo !
Merci Fred ^^
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%
Répondre