[bb] Glow Effect by mag. [ 1+ years ago ]

Started by BlitzBot, June 29, 2017, 00:28:42

Previous topic - Next topic

BlitzBot

Title : Glow Effect
Author : mag.
Posted : 1+ years ago

Description : Create a Glow effect (like in Prince Of Persia - Sand of time) . Not really ;)

Code :
Code (blitzbasic) Select
;Glow effect
;Code by Mag. Idea from Sswift.

Graphics3D 640,480,32,2
SetBuffer BackBuffer()

; Create camera
Global camera=CreateCamera()
MoveEntity camera,3,3,0
RotateEntity camera,30,30,0

light=CreateLight()

Global cube=CreateCube()
PositionEntity cube,0,0,5
tex0=CreateTexture(300,300)
SetBuffer TextureBuffer(tex0)
ClsColor 255,255,255
Cls
SeedRnd(MilliSecs())
For k=1 To 50
Color Rand(256),Rand(256),Rand(256)
Rect Rand(600),Rand(600),Rand(600),Rand(600)
Next
EntityTexture cube,tex0
SetBuffer BackBuffer()

;glow setup
s=1
Global sizex=640/s
Global sizey=480/s
Global glowtexture=CreateTexture (384,384,256)
Global sp=CreateSprite(camera)
MoveEntity sp,-.25,-0.06,1.18
EntityAlpha sp,.32
ScaleTexture glowtexture,GraphicsWidth()/sizex,GraphicsHeight()/sizey
EntityTexture sp,glowtexture
TextureBlend glowtexture, 5
While Not KeyDown( 1 )
TurnEntity cube,0.5,0.5,0.5
CameraViewport camera,0,0,sizex,sizey
RenderWorld
CopyRect 0,0,sizex,sizey,0,0,BackBuffer(),TextureBuffer(glowtexture)
CameraViewport camera,0,0,GraphicsWidth(),GraphicsHeight()

RenderWorld
Flip
Wend

End


Comments :


T-Head(Posted 1+ years ago)

 Hi,its very well! Exactly what I need!thx


Filax(Posted 1+ years ago)

 Great !


FredMe(Posted 1+ years ago)

 Excellent,I will used this idea for my FPS Engine !


Picklesworth(Posted 1+ years ago)

 This will be very useful for a strategy game with glowing objects, where they are all really small and in large numbers... Thus needing a fast routine that looks good from afar.


Barliesque(Posted 1+ years ago)

 It seems to work just as well, removing the first RenderWorld statement, which ought to give faster results in a complex scene.Try this slightly adjusted version...
;Glow effect
;Code by Mag. Idea from Sswift.

Graphics3D 640,480,32,2
SetBuffer BackBuffer()

; Create camera
Global camera=CreateCamera()
MoveEntity camera,3,3,0
RotateEntity camera,30,30,0

light=CreateLight()

Global cube=CreateCube()
PositionEntity cube,0,0,5
tex0=CreateTexture(300,300)
SetBuffer TextureBuffer(tex0)
ClsColor 255,255,255
Cls
SeedRnd(MilliSecs())
For k=1 To 50
Color Rand(256),Rand(256),Rand(256)
Rect Rand(600),Rand(600),Rand(600),Rand(600)
Next
EntityTexture cube,tex0
SetBuffer BackBuffer()

;glow setup
s=1
Global sizex=640/s
Global sizey=480/s
Global glowtexture=CreateTexture (384,384,256)
Global sp=CreateSprite(camera)
MoveEntity sp,-.25,-0.06,1.21
ScaleTexture glowtexture,GraphicsWidth()/sizex,GraphicsHeight()/sizey
EntityTexture sp,glowtexture

TextureBlend glowtexture, 5    ;Also try mode 2 ...and increase the Alpha from 0.44 to about 0.80
EntityAlpha sp, 0.44

While Not KeyDown( 1 )
TurnEntity cube,0.5,0.5,0.5
CameraViewport camera,0,0,sizex,sizey
; RenderWorld
CopyRect 0,0,sizex,sizey,0,0,BackBuffer(),TextureBuffer(glowtexture)
CameraViewport camera,0,0,GraphicsWidth(),GraphicsHeight()

RenderWorld
Flip
Wend

End



ingenium(Posted 1+ years ago)

 WOOOOOOOOOOOOOOOOOOWWWWW!!!!!!!!!!!!!


Nmuta(Posted 1+ years ago)

 Wow. Very nice.


puki(Posted 1+ years ago)

 This can be optimised further and can also be made more dynamic with regard to resizing.I'll expect an amened version within the week.Thank you.


Mustang(Posted 1+ years ago)

 Nice!


Buggy(Posted 1+ years ago)

 So nice!  Will definitely use this sometime!


RemiD(Posted 8 months ago)

 can somebody explain what is going on (the method) in this code ? it seems that "mag" tweaked it until it looks ok but without any clue of why he has configured it this way... [/i]