Вот решил проверить:
Graphics3D 640,480
SetBuffer BackBuffer()
Global camera=CreateCamera()
Global light=CreateLight()
RotateEntity light,90,0,0
cylinder=CreateCylinder()
PositionEntity cylinder,0,0,5
While Not KeyDown( 1 )
t=MilliSecs()
For i=1 To 100000
Dist()
Next
dt=MilliSecs()-t
t1=MilliSecs()
For i=1 To 100000
dist=EntityDistance(camera,light)
If dist<1000 near=True
Next
dt1=MilliSecs()-t1
RenderWorld
Text 10,10,+dt
Text 10,30,+dt1
Flip
Wend
End
Function Dist()
dist=EntityDistance(camera,light)
If dist<1000 near=True
End Function
Как и ожидалось dt1>dt, причем где-то в 1,5 раза (на моем компьютере значения были dt1=54-57, dt=34-37).
P.S. Конечно я не против функций, их можно и нужно использовать. А эту информацию просто примите к сведению...