Rond dans l'eau (Rotation de texture sur un mesh torus)

Généralités sur la programmation 3D
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Rond dans l'eau (Rotation de texture sur un mesh torus)

Message par falsam »

N'étant pas possible de créer en natif un torus avec Pure Basic, j'ai crée un mesh ayant la forme d'un torus que j'ai aplati sur lequel j'applique un matériel composé d'une texture d'eau avec un effet de transparence que je fais scroller.

Vous trouverez le source PB et les médias associés (Texture et Mesh) en téléchargeant le fichier ci-dessous :
:arrow: Torus 3D.zip (Source)

Bien que le source PB soit compris dans le téléchargement, je poste aussi le code.

Code : Tout sélectionner

;Ronds dans l'eau : Rotation et defilement d'une texture dans une entité

InitEngine3D()
InitKeyboard()
InitSprite()

Add3DArchive("Data/Torus", #PB_3DArchive_FileSystem)

Window = OpenWindow(#PB_Any,0,0,1024,768,"Torus")
OpenWindowedScreen(WindowID(window),0,0,1024,768)

;
; Ambience Lumiére blanche
AmbientColor(RGB(255, 255, 255))
CreateLight(#PB_Any,RGB(255, 255, 255), 0,10,100)

;
; Préparation d'un torus
Mesh = LoadMesh(#PB_Any, "Torus.mesh")
TransformMesh(Mesh, 0,0,0, 1.70, 0.02, 1.70, 35,0,0) 
Texture = LoadTexture(#PB_Any, "Eau1.tga")
Materiel = CreateMaterial(#PB_Any,TextureID(Texture))
RotateMaterial(materiel, 90, #PB_Material_Fixed)
MaterialBlendingMode(Materiel, #PB_Material_AlphaBlend) ;Transparence sur le Materiel
ScrollMaterial(Materiel, 0.00, 0.10, #PB_Material_Animated, 0) ;Scrolling de la texture 
Entity = CreateEntity(#PB_Any, MeshID(Mesh), MaterialID(materiel))

;
;Camera 
Camera = CreateCamera(#PB_Any,0,0,100,100)
CameraBackColor(Camera, RGB(145, 182, 201))
MoveCamera(camera,0,0,4)
CameraLookAt(camera,0,0,0)

While #True
  
  event = WindowEvent()
  
  ExamineKeyboard()  
  
  If event = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)
    Break
  EndIf  
  
  RenderWorld()
  FlipBuffers()
Wend 
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
SPH
Messages : 4726
Inscription : mer. 09/nov./2005 9:53

Re: Rond dans l'eau (Rotation de texture sur un mesh torus)

Message par SPH »

Waouw, ca le fait !! 8O
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Fred
Site Admin
Messages : 2652
Inscription : mer. 21/janv./2004 11:03

Re: Rond dans l'eau (Rotation de texture sur un mesh torus)

Message par Fred »

Y'a de l'idée !
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Rond dans l'eau (Rotation de texture sur un mesh torus)

Message par G-Rom »

Super sympa ! :mrgreen:
Ca sent la démo d'une île tropicale ou de jungle qui approche :mrgreen:
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Rond dans l'eau (Rotation de texture sur un mesh torus)

Message par Ar-S »

Je trouve que ça se rapproche plus de l'onde de choc d'une explosion de planète, il faudrait juste agrandir le torus en plus du scroll.
En tout cas merci pour tes exemples, c'est top.
~~~~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: Rond dans l'eau (Rotation de texture sur un mesh torus)

Message par falsam »

Ar-S a écrit :Je trouve que ça se rapproche plus de l'onde de choc d'une explosion de planète, il faudrait juste agrandir le torus en plus du scroll.
En tout cas merci pour tes exemples, c'est top.
Merdum alors c'est raté pour l'onde dans l'eau :mrgreen:

Tu peux agrandir le torus en hauteur. Modifie la ligne TransformMesh(Mesh, 0,0,0, 1.70, 0.02, 1.70, 35,0,0) en remplaçant 0.02 par 2.00 par exemple.

Si vous le souhaiter je peux faire un torus avec un trou central plus large.
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