I'm intruiged by new tech simulating old tech. One thing I've been playing with recently is attempting to simulate phosphor burn - ie. A pixel burns brighter the longer it's on the screen and fades slowly when removed. You get this effect on the old Vector Screens like the ones used in the original Asteroids game. So some time back I released the glowing lines mod that I see many people using today to create a nice glow effect to thier vector games. I wanted to add something more to that, something that would offer very subtle or very extreme effects. So I borrowed some old feedback/motion blur code of mine from the Morphlings games - here is the result.

http://indiepath.com/tim/extreme.rar
And the code.

http://indiepath.com/tim/extreme.rar
And the code.
Strict Import indiepath.texturedpoly Import indiepath.projmatrix Global vObjectList:TList = New TList Type vObject Field x# Field y# Field color1 Field color2 Field size# Field angle# Field rot# Field sides Field vx# Field vy# Method New () If vObjectList = Null Then vObjectList = New TList vObjectList.AddLast Self End Method Function Create(x#,y#,size#,angle#,sides:Int) Local v:vObject = New vObject v.x = x v.y = y v.size = size v.angle = angle v.sides = sides v.color1 = Rand($FF222222,$FFFFFFFF) v.color2 = Rand($FF222222,$FFFFFFFF) v.vx = Rnd(-1,1) v.vy = Rnd(-1,1) v.rot = Rnd(-4,4) End Function Method Draw(image:tImage,frame:Int) DrawGeom(image,frame,self.x,self.y,self.sides,self.size,self.angle,self.color1,self.color2) End Method Method Update() x:+ vx y:+ vy angle:+ rot If angle > 360 Then angle:-360 If angle < 0 Then angle:+360 If x < 0 Then x:+480 If x >480 Then x:-480 If y < 0 Then y:+360 If y > 360 Then y:-360 End Method Function DrawAll(image:Timage,frame:Int) TPoly._Begin() For Local v:vObject = EachIn vObjectList v.Update() v.Draw(image,frame) Next TPoly._End() End Function End Type ' //////////////****************************************************/////////////////////// ' //////////////****************************************************/////////////////////// ' //////////////****************************************************/////////////////////// Function DrawGeom(image:tImage,frame:Int,x#,y#,sides#,length#,angle#,c1:Int,c2:Int) Local aStep# = 360.0 / sides Length# = (length/2)/Sin(aStep#/2) 'Local temp# = ((Sin(MilliSecs()/5) + 1) * 10) + 10 For Local a:Float = 0 To sides-1 Local x1# = x# - (Sin(angle + (aStep * a))*length) Local y1# = y# - (Cos(angle + (aStep * a))*length) Local x2# = x# - (Sin(angle + (aStep * (a+1)))*length) Local y2# = y# - (Cos(angle + (aStep * (a+1)))*length) TPoly.Line(image,frame,x1,y1,c1,x2,y2,c2,20,True,True) Next End Function ' //////////////****************************************************/////////////////////// ' //////////////****************************************************/////////////////////// ' //////////////****************************************************/////////////////////// AppTitle = "Subtle Glow - NOT!" Graphics 640,480,0 projectionmatrix.Initialise(480,360) tPoly.Initialise() SeedRnd(MilliSecs()) SetAlpha(1) Local temp:TImage = LoadAnimImage("glowing_dots.png",64,64,0,4,FILTEREDIMAGE|MIPMAPPEDIMAGE) For Local i:Int = 0 To 50 vObject.Create(Rand(0,480),Rand(0,360),Rand(10,20),Rand(0,360),Rand(3,10)) Next While Not KeyHit(KEY_ESCAPE) SetAlpha(1) SetBlend(LIGHTBLEND) vObject.DrawAll(temp,2) ' This is the bit that provides the nice phosphor effect. DrawImage(temp,-100,-100) ' * Force a state change SetColor 0,0,0 SetBlend(ALPHABLEND) SetAlpha(0.1) DrawRect 0,0,480,360 Flip Wend End