Bonjour à tous, je fais un tipe (travail sur un sujet scientifique) sur les avalanches et je voudrais réaliser un programme de modélisation de l'écoulement.
Le principe du programme:
- je charge un terrain (la montagne)
- à t=0, je prends un ensemble de points (la neige déplacée) => je leur applique des lois physique pour calculer leur position à t=1s par exemple et je les affiche sur l'écran. Ainsi petit à petit (seconde par seconde) j'arrive à recréer l'écoulement approché de l'avalanche .
Le rendu final devrait être une courbe (surface) ou la couleur représenterais la vitesse de chaque point (par exemple du blanc au rouge [blanc= vitesse nulle,rose= vitesse intermédiaire, rouge = vitesse max])
J'ai plusieurs problème:
1) Je pense utiliser la fonction createterrain() pour représenter la montagne seulement quand je veux charger une image que je crée sur paint pour le test j'ai le droit à une erreur microsoft avec rapport d'erreur et tout (rien sur le debogueur) par contre si je prend l'image dans les exemples de purebasic pas d'erreur....
2) comment représenter les points dans l'espace 3D ?
3D: modelisation d'une avalanche- problème CreateTerrain()
3D: modelisation d'une avalanche- problème CreateTerrain()
__________________________________________
Débutant les tutoriels de mon site sont la pour vous n'hésitez pas à aller les voir: http://tripamort.free.fr/
__________________________________________
Kayne - Webmaster de http://tripamort.free.fr/
Débutant les tutoriels de mon site sont la pour vous n'hésitez pas à aller les voir: http://tripamort.free.fr/
__________________________________________
Kayne - Webmaster de http://tripamort.free.fr/
Re: 3D: modelisation d'une avalanche- problème CreateTerrai
De mémoire, regarde bien la taille des images. 512x512 = 513x513 il me semble1) Je pense utiliser la fonction createterrain() pour représenter la montagne seulement quand je veux charger une image que je crée sur paint pour le test j'ai le droit à une erreur microsoft avec rapport d'erreur et tout (rien sur le debogueur) par contre si je prend l'image dans les exemples de purebasic pas d'erreur....
Des billboards ?2) comment représenter les points dans l'espace 3D ?
Re: 3D: modelisation d'une avalanche- problème CreateTerrai
J'ai refais un test et je pense que c'est la discontinuité qui pose problème pck quand je fais un dégradé ça marche parfaitement.
Je vais regarder la piste des billboard pour les point dans l'espaces
Je vais regarder la piste des billboard pour les point dans l'espaces
__________________________________________
Débutant les tutoriels de mon site sont la pour vous n'hésitez pas à aller les voir: http://tripamort.free.fr/
__________________________________________
Kayne - Webmaster de http://tripamort.free.fr/
Débutant les tutoriels de mon site sont la pour vous n'hésitez pas à aller les voir: http://tripamort.free.fr/
__________________________________________
Kayne - Webmaster de http://tripamort.free.fr/
Re: 3D: modelisation d'une avalanche- problème CreateTerrai
Mon code est le suivant: il y a surement des maladresses j'aimerais les corriger. et j'ai une erreur: invalide memory access avec la bande rouge sur le addbillboard
Code : Tout sélectionner
;-----TIPE Avalanche------
InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
UseJPEGImageEncoder()
#CameraSpeed = 1
OpenScreen(1024,768,32,"HR - TIPE - Avalanche")
Add3DArchive("source",#PB_3DArchive_FileSystem)
AmbientColor(RGB(255,255,255))
LoadTexture(0, "terrain_texture.jpg")
LoadTexture(1, "terrain_detail.jpg")
For i = 2 To 255
CreateImage(i,64,64)
StartDrawing(ImageOutput(i))
Box(0,0,100,100,RGB(i,0,0))
SaveImage(i,"source/"+Str(i)+"avalanche.jpg",#PB_ImagePlugin_JPEG)
StopDrawing()
CreateMaterial(i, LoadTexture(i, Str(i)+"avalanche.jpg"))
CreateBillboardGroup(i, MaterialID(i),100,100)
Next
CreateMaterial (0, TextureID(0))
AddMaterialLayer(0, TextureID(1), #PB_Material_Add)
CreateTerrain("terrain.png", MaterialID(0), 1, 1, 1, 4)
SkyDome("clouds.jpg",10)
AddBillboard(2, 100, 0, 30, 10)
AddBillboard(3, 200, 0, 30, 20)
AddBillboard(4, 50, 0, 30, 30)
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0, 0,0, 0)
Repeat
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
KeyX = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = #CameraSpeed
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyZ = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Down)
KeyZ = #CameraSpeed
Else
KeyZ = 0
EndIf
If KeyboardPushed(#PB_Key_Z)
KeyY = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_S)
KeyY = #CameraSpeed
Else
KeyY = 0
EndIf
EndIf
If ExamineMouse()
MouseX = -(MouseDeltaX()/10)*#CameraSpeed/2
MouseY = -(MouseDeltaY()/10)*#CameraSpeed/2
EndIf
Height.f = TerrainHeight(CameraX(0), CameraZ(0))
RotateCamera(0, MouseY, MouseX, RollZ, #PB_Relative)
MoveCamera (0, KeyX, KeyY, KeyZ)
RenderWorld()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
__________________________________________
Débutant les tutoriels de mon site sont la pour vous n'hésitez pas à aller les voir: http://tripamort.free.fr/
__________________________________________
Kayne - Webmaster de http://tripamort.free.fr/
Débutant les tutoriels de mon site sont la pour vous n'hésitez pas à aller les voir: http://tripamort.free.fr/
__________________________________________
Kayne - Webmaster de http://tripamort.free.fr/