/* Copyrighted Pixar 1989 */
/* From the RenderMan Companion p.345 */
/* Listing 16.12  Surface shader providing checkerboard pattern */

/*
 * checker(): surface shader for applying a checkerboard pattern.
 */
surface
checker (
	float Kd = .5,
	      Ka = .1,
		  frequency = 10;
	color blackcolor = color (0, 0, 0) )
{
	float smod = mod (s* frequency, 1),
	      tmod = mod (t* frequency, 1);
	
	if (smod < 0.5) {
		if (tmod < 0.5)
			Ci = Cs;
		else
			Ci = blackcolor;
	}
	else {
		if (tmod < 0.5)
			Ci = blackcolor;
		else
			Ci = Cs;
	}
	
	Oi = Os;
	Ci = Oi * Ci *
	 (Ka * ambient() +
	  Kd * diffuse (faceforward (normalize (N), I) ) );
}

	