surface
stripe ( float Ka = 0.5, Kd = 0.75, Ks = 0.25, roughness = 0.1;
color specularcolor = 1,
stripe1Color = color "rgb" (.9, 0, .9),
stripe2Color = color "rgb" (.3,.9,.5);
float width = 0.2)
{
normal Nf;
color surfaceColor;
point PP;
float tt, ss;
float frame = 2*width;
PP = transform ("shader", P);
ss = mod(xcomp(PP), frame);
tt = mod(ycomp(PP), frame);
if (ss < width) {
surfaceColor = stripe1Color;
}
else
surfaceColor = stripe2Color;
Nf = faceforward (normalize(N),I);
Oi = Os;
Ci = Os * ( surfaceColor * (Ka*ambient() + Kd*diffuse(Nf)) +
specularcolor * Ks*specular(Nf,-normalize(I),roughness));
}