/* funkyglass.sl - randomly colored "glass" (transparent, but no refl/refr).
 * (c) Copyright 1994, Larry Gritz
 *
 * The RenderMan (R) Interface Procedures and RIB Protocol are:
 *     Copyright 1988, 1989, Pixar.  All rights reserved.
 * RenderMan (R) is a registered trademark of Pixar.
 */

surface k3d_funkyglass(float Ka = .2;
		       float Kd = .2; float Ks = 1; float roughness = .08;
		       color specularcolor = 1;)
{
  point PP;
  normal Nf;
  vector V;
  color Ct, Ot;

  V = normalize(I);
  Nf = faceforward(normalize(N), V);
  PP = transform("shader", P);
  Ct = 2 * (color noise(PP) - .5) + .5;
  Ot = (comp(Ct, 0) + comp(Ct, 1) + comp(Ct, 2)) / 3 + (1 - Ct);

  Oi = Ot * (0.75 - 0.5 * abs(V.Nf));
  Ci =
    (Ct * (Ka * ambient() + Kd * diffuse(Nf)) +
     specularcolor * Ks * specular(Nf, -V, roughness));
}
