we use the function
Code: Select all
CreateLensFlareEffect(#Effect, CameraID, NodeID, BurstSize, HaloSize, HaloMaterialID, CircleMaterialID, BurstMaterialID)Code: Select all
CameraLookAt(0, 1000-eyeMove, 1000, 500)use Left/ right keys to change the lens flare effect by changing the CameraLookAt x direction, just for fun we change the flare color to orange or green when we look left or right
Code: Select all
IncludeFile "Screen3DRequester.pb"
Define yaw.f, X.f, Y.f, Z.f, FOV.f, Timer.i, eyeMove.f
#LensFlare = 27
#flareMat = 30
If InitEngine3D()
Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
Add3DArchive("Data/Scripts", #PB_3DArchive_FileSystem)
Add3DArchive("Data/OPE/material_scripts", #PB_3DArchive_FileSystem)
Add3DArchive("Data/Packs/desert.zip", #PB_3DArchive_Zip)
Parse3DScripts()
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
; Ground
;
GetScriptMaterial(0, "Scene/GroundBlend")
GetScriptMaterial(#flareMat, "PE/lensflare")
CreatePlane(0, 10000, 10000, 100, 100, 50, 50)
CreateEntity(0, MeshID(0), MaterialID(0))
; Camera
;
CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 2000, 100, 2000, #PB_Absolute)
CameraLookAt(0, 0, 1500, 0)
CameraFOV(0, 60)
; Node for lensflare
;
CreateNode(0, 0, 500, 0)
CreateLensFlareEffect(#Lensflare, CameraID(0), NodeID(0), 10, 100, MaterialID(#flareMat), MaterialID(#flareMat), MaterialID(#flareMat))
; Skybox
;
SkyBox("desert07.jpg")
Repeat
Screen3DEvents()
If KeyboardPushed(#PB_Key_Left)
eyeMove+5
If eyeMove > 30
LensFlareEffectColor(#LensFlare, #PB_LensFlare_HaloColor , RGB(254,232,180))
EndIf
ElseIf KeyboardPushed(#PB_Key_Right)
eyeMove-5
If eyeMove < 30
LensFlareEffectColor(#LensFlare, #PB_LensFlare_HaloColor , RGB(100,232,180))
EndIf
EndIf
MoveNode(0, 0, 1000, 0, #PB_Absolute)
;Camera
FOV = 60 - 30 * Cos(ElapsedMilliseconds() / 2500)
;RotateCamera(0, 1000, 0, 0)
CameraFOV(0, FOV)
CameraLookAt(0, 1000-eyeMove, 1000, 500)
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