Here's a
very crude blur example:
set display mode 800,600,32:ink 0,0:hide mouse
dim objpos#(3):dim cam#(4):dim vert#(8,3)
dim blur(1)
blur(1)=5
cam#(3)=-0.7
load dll "user32.dll",1
load dll "gdi32.dll",2
hWnd = call dll(1,"GetActiveWindow")
hDC = call dll(1,"GetWindowDC",hWnd)
sync on
do
cls rgb(255,255,255)
set cursor 0,0
print screen fps()
if rightkey()=1 then a#=wrapvalue(a#+1)
if leftkey()=1 then a#=wrapvalue(a#-1)
placevert(a#)
fillit()
frameit()
sync
loop
function rgx(x#,z#)
dx#=cam#(1)-x#
dz#=cam#(3)-z#
dist#=sqrt(dx#^2+dz#^2)
a#=atan(dx#/dz#)-cam#(4)
rx#=dist#*sin(a#)
endfunction rx#
function rgz(x#,z#)
dx#=cam#(1)-x#
dz#=cam#(3)-z#
dist#=sqrt(dx#^2+dz#^2)
a#=atan(dx#/dz#)-cam#(4)
rz#=dist#*cos(a#)
endfunction rz#
function sy(x#,y#,z#)
grady#=y#/z#
sy#=600-((grady#/2)*1000+300)
endfunction sy#
function sx(x#,y#,z#)
gradx#=x#/z#
sx#=(gradx#/2)*1000+400
endfunction sx#
function placevert(a#)
blah=0
for t = 1 to 7 step 2
blah=blah+1
if blah=1 then b#=0+45
if blah=2 then b#=90+45
if blah=3 then b#=180+45
if blah=4 then b#=270+45
vert#(t,1)=newxvalue(0,a#+b#,0.1)
vert#(t,2)=0.1
vert#(t,3)=newzvalue(0,a#+b#,0.1)
next t
blah=0
for t = 2 to 8 step 2
blah=blah+1
if blah=1 then b#=0+45
if blah=2 then b#=90+45
if blah=3 then b#=180+45
if blah=4 then b#=270+45
vert#(t,1)=newxvalue(0,a#+b#,0.1)
vert#(t,2)=-0.1
vert#(t,3)=newzvalue(0,a#+b#,0.1)
next t
endfunction
function frameit()
for t = 1 to 7 step 2
x#=rgx(vert#(t,1),vert#(t,3))
y#=vert#(t,2)
z#=rgz(vert#(t+1,1),vert#(t+1,3))
x2#=rgx(vert#(t+1,1),vert#(t+1,3))
y2#=vert#(t+1,2)
z2#=rgz(vert#(t+1,1),vert#(t+1,3))
ink 0,0
line sx(x#,y#,z#),sy(x#,y#,z#),sx(x2#,y2#,z2#),sy(x2#,y2#,z2#)
next t
endfunction
function fillit()
for DUFA = 1 to 5 step 2
x#=rgx(vert#(DUFA,1),vert#(DUFA,3))
y#=vert#(DUFA,2)
z#=rgz(vert#(DUFA,1),vert#(DUFA,3))
x1#=sx(x#,y#,z#)
y1#=sy(x#,y#,z#)
x#=rgx(vert#(DUFA+2,1),vert#(DUFA+2,3))
y#=vert#(DUFA+2,2)
z#=rgz(vert#(DUFA+2,1),vert#(DUFA+2,3))
x2#=sx(x#,y#,z#)
y2#=sy(x#,y#,z#)
tree#=y2#
gt#=(y1#-y2#)/(x1#-x2#)
DUuFA=DUFA
x#=rgx(vert#(DUuFA+1,1),vert#(DuUFA+1,3))
y#=vert#(DUuFA+1,2)
z#=rgz(vert#(DuUFA+1,1),vert#(DUuFA+1,3))
x1#=sx(x#,y#,z#)
y1#=sy(x#,y#,z#)
x#=rgx(vert#(DUuFA+3,1),vert#(DuUFA+3,3))
y#=vert#(DUuFA+3,2)
z#=rgz(vert#(DUuFA+3,1),vert#(DuUFA+3,3))
x2#=sx(x#,y#,z#)
y2#=sy(x#,y#,z#)
gb#=(y1#-y2#)/(x1#-x2#)
n=(x1#-x2#)
for a# = x2# to x2#+n
x#=a#-x2#
1#=(n/3)+x2#
2#=((n/3)*2)+x2#
if a#<1# then ink rgb(255,0,0),0
if a#>1# and a#<2# then ink rgb(0,255,0),0
if a#>2# then ink rgb(0,0,255),0
line a#,x#*gt#+tree#,a#,x#*gb#+y2#
if spacekey()=1
q=0
for x# = 1#-blur(1) to 1#+blur(1)
q=q+1
fade=q*(230/(blur(1)*2))
ink rgb(255-fade,fade,0),0
line x#,220,x#,380
next x#
q=0
for x# = 2#-blur(1) to 2#+blur(1)
q=q+1
fade=q*(230/(blur(1)*2))
ink rgb(0,255-fade,fade),0
line x#,220,x#,380
next x#
n#=n+x2#
q=0
for x# = n#-blur(1) to n#+blur(1)
q=q+1
fade=q*(230/(blur(1)*2))
ink rgb(fade,0,255-fade),0
line x#,220,x#,380
next x#
endif
next a#
NEXT DUFA
endfunction
Spacekey to put it out of focus
As you can see the speed dies pretty much completely.