Rond dans l'eau (Rotation de texture sur un mesh torus)
Publié : dim. 30/juin/2013 16:19
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 :
Torus 3D.zip (Source)
Bien que le source PB soit compris dans le téléchargement, je poste aussi le code.
Vous trouverez le source PB et les médias associés (Texture et Mesh) en téléchargeant le fichier ci-dessous :

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