Lua-FOV icon indicating copy to clipboard operation
Lua-FOV copied to clipboard

Field of Vision (FOV) algorithms in Lua

Field of view algorithms in Lua.

Two algorithms are available: -Recursive shadowcasting -Precise permissive

The demo requires LOVE.

Example code:

	fov = require 'fov'
	
	-- Required callbacks:
	function isTransparent(x,y)
		-- return true if the cell is non-blocking
	end
	
	function onVisible(x,y)
		-- gets called when a square is visible
	end
	
	-- Required:
	radius        = 5   -- sight radius
	px,py         = 0,0 -- position of light origin
	
	-- Optional:
	start_angle   = 0         -- starting angle for FOV arc
	last_angle    = math.pi*2 -- last angle for FOV arc
	                          -- default: 360 degrees FOV
	                          
	permissiveness= 10 -- 0-10, 10 being perfectly symmetric FOV
	                   -- default: 10
	                   -- not available for Recursive Shadowcasting
	                   
	-- Calculate fov:
	fov(px,py,radius,isTransparent,onVisible,
	start_angle,last_angle,permissiveness)

More information can be found by searching: FOV using recursive shadowcasting - Björn Bergström Precise permissive field of view - Jonathon Duerig