surface lab7 ( color dotcolor = 1; color backcolor = 0; float radius= 1; float spacing = 2; float Ka = 1; float Kd = 1; ) { point Nf, V; float x, y, z; x = xcomp(transform("shader",P)); y = ycomp(transform("shader", P)); z = zcomp(transform("shader", P)); if (x > (spacing * (floor(x/spacing) + .5))) x = mod(-x, spacing); else x = mod(x, spacing); if (y > (spacing * (floor(y/spacing) + .5))) y = mod(-y, spacing); else y = mod(y, spacing); if (z > (spacing * (floor(z/spacing) +.5))) z = mod(-z, spacing); else z = mod(z, spacing); Oi = Os; Nf = faceforward(normalize(N), I); V = normalize(-I); if (((x * x) + (z * z) + (y * y)) < (radius * radius)) Ci = Oi * dotcolor; else Ci = Oi * backcolor; }