surface FHSpiral ( float ts = 0, Ks = .5, Kd = .5, Ka = 1, roughness = .1, frequency = 1; color color1 = 1, color2 = color "rgb" (1, 0, 0), specularcolor = 1; ) { point Nf; point V = normalize(-I); color Ct; float ss,tt,msft; if (ts == 0) { ss = s; tt = t; } else { ss = 1-t; tt = s; } msft = mod(ss+frequency*tt, 1); Ct = mix(color1, color2, smoothstep(.49, .51, msft)); Nf = faceforward(normalize(N),I); Oi=Os; Ci=Os*(Ct * (Ka*ambient() + Kd*diffuse(Nf)) + specularcolor * Ks *specular(Nf, V, roughness) ); }