#include "rmannotes.sl" surface dots (float horiz=1, vert=1, radius=.14, cx=.5, cy=.5, fuzz=.01, anim=1, amplitude=.25) { color surface_color, surface_opac; color layer_color, layer_opac; float d, ss, tt; /* BACKGROUND LAYER */ surface_opac = Os; surface_color = Cs; ss = repeat(s, horiz); tt = repeat(t, vert); d = distance((ss,tt,0), (cx+amplitude*snoise(anim), cy+amplitude*snoise(anim), 0)); /* LAYER 1 */ layer_opac = 1 - smoothstep(radius-fuzz, radius, d); layer_color = color(1,0,0); surface_color = blend(surface_color, layer_color, layer_opac); /* OUTPUT */ Oi = surface_opac; Ci = surface_opac * surface_color; }