Home
Products
Community
Manuals
Contact
Login or Signup

Code archives/3D Graphics - Effects/Glow Effect

This code has been declared by its author to be Public Domain code.

Download source code

Glow Effect by mag.(Posted 1+ years ago)
Create a Glow effect (like in Prince Of Persia - Sand of time) . Not really ;)
;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!


Code Archives Forum