/* Copyrighted Pixar 1989 */
/* From the RenderMan Companion p.352 */
/* Listing 16.18  Surface shader for granite-like surface*/

/* 
 * granite(): Provide a diffuse granite-like surface texture. 
 */
surface 
granite(
	float	Kd	= .8,
		Ka	= .2 )
{
	float sum = 0;
	float i, freq = 1.0; /* Try other values for example, 7.0 */

	for (i = 0; i < 6; i = i + 1) {
		sum = sum + abs(.5 - noise( 4 * freq * I))/freq ;
		freq *= 2;
	}
	Ci = Cs * sum * (Ka + Kd * diffuse(faceforward( normalize(N), I )) ) ;
}
