Totally possible. I accomplished this by using porter/duff blend modes. You can take a look at the source code I posted here: http://forums.coronalabs.com/topic/41510-2-demos-for-the-contest/ I used images because I had some performance issues when using 10-20 spotlights but you could use circles with the generator.radialGradient fill effect.
Basically you are looking for this code:
--inside swcaster/engine.lua snapshotMask = display.newSnapshot(engine, width, height) local r = display.newRect(snapshotMask.group, 0, 0, width, height) r:setFillColor(0, 1) --and then swcaster/light.lua function \_createMask() local m = display.newImageRect("img/lightMask.png", 256, 256) -- this image is inserted in the mask snapshot group m.blendMode = "dstOut" return m end
Hope it helps.
Ivan.