Je rencontre deux soucis :
- L'eau part de travers,
- J'observe un lag plus important avec le mode #PB_Shadow_TextureModulative
Pouvez vous tester ce code et me dire si vous observez ces soucis.
Touche F2 et F3 pour alterner entre le mode #PB_Shadow_Modulative et #PB_Shadow_TextureModulative
Code : Tout sélectionner
EnableExplicit
Define angle.f
InitEngine3D()
InitSprite()
InitKeyboard()
OpenWindow(0, 0, 0, 1024, 768, "Shadow", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 1024, 768, 0, 0, 0)
; Assets directory
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Water", #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "Examples/3D/Data/Packs/desert.zip", #PB_3DArchive_Zip)
; Camera
Define Camera = CreateCamera(#PB_Any, 0, 0, 100, 100)
; Sky
SkyBox("desert07.jpg")
; Water
CreateWater(Camera, 0, -17.5, 0, 0, #PB_World_WaterLowQuality | #PB_World_WaterSmooth | #PB_World_WaterSun)
WaterColor(Camera, RGB(72, 209, 204))
; Light
CreateLight(#PB_Any, RGB(255, 255, 255), 1000, 1000, -500); , #PB_Light_Point)
; System Shadow
WorldShadows(#PB_Shadow_TextureModulative, 1000, RGB(105, 105, 105), 2048)
Debug "Mode #PB_Shadow_TextureModulative"
; Materials
Define Ground_Mat = CreateMaterial(#PB_Any, TextureID(LoadTexture(#PB_Any, "soil_wall.jpg")))
ScaleMaterial(Ground_Mat, 0.5, 0.5)
Define Crate_Mat = CreateMaterial(#PB_Any, TextureID(LoadTexture(#PB_Any, "caisse.png")))
; Meshes
Define Box_Mesh = CreateCube(#PB_Any, 1)
; Entities
Define Ground = CreateEntity(#PB_Any, MeshID(Box_Mesh), MaterialID(Ground_Mat), 0, -15, 0)
ScaleEntity(Ground, 500, 20, 500)
EntityRenderMode(Ground, #PB_Shadow_None)
Define Crate0= CreateEntity(#PB_Any, MeshID(Box_Mesh), MaterialID(Crate_Mat), 0, 45, 0)
ScaleEntity(Crate0, 100, 100, 100)
EntityRenderMode(crate0, #PB_Entity_None)
Define Crate1= CreateEntity(#PB_Any, MeshID(Box_mesh), MaterialID(Crate_Mat), 30, 145, -30)
ScaleEntity(Crate1, 100, 100, 100)
RotateEntity(Crate1, 0, 45, 0)
EntityRenderMode(crate1, #PB_Entity_CastShadow)
; Loop
Repeat
ExamineKeyboard()
If KeyboardReleased(#PB_Key_F2)
WorldShadows(#PB_Shadow_Modulative, 1000, RGB(105, 105, 105), 2048)
Debug "#PB_Shadow_Modulative"
EndIf
If KeyboardReleased(#PB_Key_F3)
WorldShadows(#PB_Shadow_TextureModulative, 1000, RGB(105, 105, 105), 2048)
Debug "Mode #PB_Shadow_TextureModulative"
EndIf
angle + 1
CameraFollow(camera, EntityID(Ground), angle, 600, 1000, 1, 1, #True)
CameraLookAt(Camera, 0, 0, 0)
RenderWorld()
FlipBuffers()
Until WindowEvent() = #PB_Event_CloseWindow Or KeyboardReleased(#PB_Key_Escape)