surface test_gather(float invert = 0, swap = 0, Ks = 1, refractive_index = 1.52, samplecone = 0, samples =10) { vector i = normalize(I); normal n = normalize(N); normal nf = faceforward(n, i); color hitcol = 0; float refIndex = refractive_index; float sc = ((2 * PI)/360) * samplecone; Ci = 0; Oi = Os; if(invert == 0){ if(n.-i < 0){ refIndex = 1/refIndex; }else{ if(n.-i < 0){ refIndex = refIndex; } } } vector rayRef = refract(i, nf, refIndex); float numhits = 0; gather("illuminance", P, rayRef, sc, samples, "surface:Ci", hitcol) { Ci += hitcol; numhits += 1; } Ci = (Ci / numhits); Oi = 1; }