Fish Eye Lens Effect


Tweet blitz3d graphics code-archives effects
(Posted 1 month ago) RonTek

This is a pretty cool effect for blitz plus and b3d (although im not sure why you would need rain on the camera in 2d :p ) i just threw this together so there is a major bug to look out for. its hard to describe but look at the bottom half of the drop and you will see it. if anyone knows how to get rid of that bug do tell please :) enjoy

Image

Author: Nate the Great

;VERY cool magnifying glass demo.

Graphics 640,480,0,2
HidePointer()
img = CreateImage(640,480)
SetBuffer ImageBuffer(img)
SeedRnd(22432)
For x = 1 To 9000
Color Rnd(255),Rnd(255),Rnd(255)
Rect Rnd(640),Rnd(480),Rnd(20),Rnd(20),1
Next




Global dimg = CreateImage(150,150)


SetBuffer BackBuffer()


While Not KeyDown(1)
Cls

DrawImage img,(-(MouseX())+320)/3,(-(MouseY()/1)+240)/3
drop(MouseX(),MouseY(),50,1)



Flip False
Wend
End


Function drop(x,y,r,s# = 1)

LockBuffer ImageBuffer(dimg)
LockBuffer BackBuffer()

For x1 = -r To r
    For y1 = -r To r
        dist# = Sqr(x1*x1 + y1*y1)
        If dist# <= r Then

            WritePixelFast1 x1+r,y1+r,ReadPixelFast1(x1*(dist#/r*s#)+x,y1*(dist#/r*s#)+y),ImageBuffer(dimg)
        EndIf
    Next
Next


UnlockBuffer BackBuffer()
UnlockBuffer ImageBuffer(dimg)
Color 0,0,0
Oval x-r+1,y-r+1,2*r-1,2*r-1,1
DrawImage dimg,x-r,y-r

SetBuffer ImageBuffer(dimg)
Color 0,0,0
Rect 0,0,151,151,1
SetBuffer BackBuffer()

End Function


Function writepixelfast1(x,y,col,buffer)

If x > -1 And y > -1 Then
    If x < GraphicsWidth()-1 And y < GraphicsHeight()-1 Then
        WritePixelFast x,y,col,buffer
    EndIf
EndIf

End Function


Function readpixelfast1(x,y)

If x > 0 And y > 0 Then
    If x < GraphicsWidth() And y < GraphicsHeight() Then
        Return(ReadPixelFast(x,y))
    EndIf
EndIf

Return 0

End Function

Reply To Topic (minimum 10 characters)

Please log in to reply