displacement legodot (float dotradius = 0.3, height = 0.2, dotSfrequency = 1, /* how many dots this way */ dotTfrequency = 1; /* how many dots that way */ ) { float magnitude, smod = mod(s*dotSfrequency, 1), tmod = mod(t*dotTfrequency, 1); /* dot shall be centered at (0.5,0.5) in [0,1]X[0,1] */ if (sqrt((smod-0.5)*(smod-0.5)+(tmod-0.5)*(tmod-0.5)) <= dotradius) magnitude = height; else magnitude = 0; P = P + (normalize(N) * magnitude); N=calculatenormal(P); }