light arealight(color lightcolor = color(1,1,1); float intensity = 1; string maplist = ""; float numsamples = 1; point Pl1 = point "shader" (0, 0, 0); point Pl2 = point "shader" (1, 0, 0); point Pl3 = point "shader" (0, 1, 0); point Pl4 = point "shader" (1, 1, 0); float shadowbias = 0.001; float gapbias = 0.01) { varying float attenuation; /* Base illumination at average of light positions */ illuminate ((Pl1 + Pl2 + Pl3 + Pl4) * 0.25) { attenuation = shadow(maplist, Ps, "source", Pl1, Pl2, Pl3, Pl4, "samples", numsamples, "bias", shadowbias, "gapbias", gapbias); Cl = lightcolor * intensity * (1-attenuation); } }