[RESOLU] CreateWater()
Publié : mer. 18/sept./2013 22:23
Je me pose des questions sur la création de l'eau.
CreateWater(#Camera, x, y, z, Transparence, Options) permet de créer une surface d'eau.
Pourquoi une camera pour créer l'eau ?
Si je comprend la position y qui va me permettre de positionner l'eau en hauteur, je ne comprend pas par contre la position x et y sachant que la surface est infini.
L'amplitude des vagues peut dépasser par moment les 3 m. Je pensais que le paramétre #PB_World_WaterSmooth allait atténuer cette amplitude mais il n'en est rien. Dans ces condition, créer une plage me parait difficile. ça aurait était pas mal de régler la hauteur des vagues voir meme avoir une eau presque plate.
Le résultat du code qui suit est plutôt laid mais il est là pour illustrer l'amplitude des vagues. Vous allez voir un parallélépipède de 10 m de hauteur plongé dans l'eau. Personne sensible s'abstenir :p
CreateWater(#Camera, x, y, z, Transparence, Options) permet de créer une surface d'eau.
Pourquoi une camera pour créer l'eau ?
Si je comprend la position y qui va me permettre de positionner l'eau en hauteur, je ne comprend pas par contre la position x et y sachant que la surface est infini.
L'amplitude des vagues peut dépasser par moment les 3 m. Je pensais que le paramétre #PB_World_WaterSmooth allait atténuer cette amplitude mais il n'en est rien. Dans ces condition, créer une plage me parait difficile. ça aurait était pas mal de régler la hauteur des vagues voir meme avoir une eau presque plate.
Le résultat du code qui suit est plutôt laid mais il est là pour illustrer l'amplitude des vagues. Vous allez voir un parallélépipède de 10 m de hauteur plongé dans l'eau. Personne sensible s'abstenir :p
Code : Tout sélectionner
Define CamX.f, CamY.f
InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
ExamineDesktops()
WWidth = DesktopWidth(0)
WHeight = DesktopHeight(0)
Window = OpenWindow(#PB_Any, 0, 0, WWidth, Wheight, "3d",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(Window), 0, 0, WWidth, WHeight, 0, 0,0)
Add3DArchive(#PB_Compiler_Home + "Examples\3D\Data\Packs\desert.zip", #PB_3DArchive_Zip)
Add3DArchive(#PB_Compiler_Home + "Examples\3D\Data\Water", #PB_3DArchive_FileSystem)
Camera = CreateCamera(#PB_Any, 0, 0, 100, 100)
MoveCamera(Camera, 0, 30, 80)
CameraLookAt(Camera, 0, 0, 0)
Light = CreateLight(#PB_Any ,RGB(190, 190, 190), 0, 100, 0, #PB_Light_Directional)
SkyBox("desert07.jpg")
Sun(10000, 10000, -100000, RGB(238, 173, 148))
CreateWater(Camera, 0, 0, 0, 255, #PB_World_WaterSmooth)
Mesh = CreateCube(#PB_Any, 1)
Entity = CreateEntity(#PB_Any, MeshID(Mesh), #PB_Material_None)
ScaleEntity(Entity, 30, 10, 30)
Repeat
If ExamineMouse()
CamY = -MouseDeltaX()/10
CamX = -MouseDeltaY()/10
EndIf
RotateCamera(Camera, CamX, CamY, 0, #PB_Relative)
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
EndIf
RenderWorld()
FlipBuffers()
ForEver