Code updated for 5.11 beta 3.
Code: Select all
;
; ------------------------------------------------------------
;
; PureBasic - Compositor
;
; (c) 2013 - Fantaisie Software
;
; ------------------------------------------------------------
;
#CameraSpeed = 2
IncludeFile "Screen3DRequester.pb"
Define.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D(#PB_Engine3D_EnableCG)
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
Add3DArchive("textures", #PB_3DArchive_FileSystem)
Add3DArchive("programs", #PB_3DArchive_FileSystem)
Add3DArchive("models", #PB_3DArchive_FileSystem)
Add3DArchive("packs/skybox.zip", #PB_3DArchive_Zip)
Add3DArchive("scripts", #PB_3DArchive_FileSystem)
Parse3DScripts()
; First create materials
;
CreateMaterial(0, LoadTexture(0,"grass1.png"))
MaterialBlendingMode(0, #PB_Material_AlphaBlend)
CreateMaterial(1, LoadTexture(1,"Dirt.jpg"))
; Then create the billboard group and use the previous material
;
;-Billboard
CreateBillboardGroup(0, MaterialID(0), 96, 96)
For i = 0 To 600
AddBillboard(#PB_Any, 0, Random(2000)-1000, Random(18) + 30, Random(2000) - 1000)
Next i
; create ground
CreatePlane(0, 2000, 2000, 40, 40, 4, 4)
CreateEntity(0, MeshID(0), MaterialID(1))
; Add house
LoadMesh(1, "tudorhouse.mesh")
LoadMesh(2, "tudorhouse.mesh")
CreateEntity(1, MeshID(1), #PB_Material_None, 0, 280, 0)
ScaleEntity(1, 0.5, 0.5, 0.5)
LoadMesh(3, "robot.mesh")
CreateEntity(3, MeshID(3), #PB_Material_None, 0, 0, 300)
StartEntityAnimation(3, "Walk")
ScaleEntity(3, 2, 2, 2)
RotateEntity(3, 0, -70, 0)
; SkyBox
SkyBox("stevecube.jpg")
; create camera
CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 200, 400, 900, #PB_Absolute)
CameraLookAt(0, 0, 100, 0)
CreateCompositorEffect(0, CameraID(0), "Old Movie")
;CreateCompositorEffect(0, CameraID(0), "Old TV")
;CreateCompositorEffect(0, CameraID(0), "B&W")
;CreateCompositorEffect(0, CameraID(0), "Glass")
;CreateCompositorEffect(0, CameraID(0), "Sharpen Edges")
;CreateCompositorEffect(0, CameraID(0), "Posterize")
;CreateCompositorEffect(0, CameraID(0), "ASCII")
;CreateCompositorEffect(0, CameraID(0), "Embossed")
;CreateCompositorEffect(0, CameraID(0), "Tiling")
;CreateCompositorEffect(0, CameraID(0), "Night Vision")
Repeat
Screen3DEvents()
If ExamineMouse()
MouseX = -MouseDeltaX() * #CameraSpeed * 0.05
MouseY = -MouseDeltaY() * #CameraSpeed * 0.05
EndIf
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)
KeyY = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = #CameraSpeed
Else
KeyY = 0
EndIf
EndIf
RotateCamera(0, MouseY, MouseX, 0, #PB_Relative)
MoveCamera (0, KeyX, 0, KeyY)
RenderWorld()
Screen3DStats()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End