/*  IDscartissue.sl written by Ivan DeWolf
 *  an unremarkable recursive noise to make scartissue
 *  feel free to copy, distribute, hack and/or abuse this code 
 *  in any way you see fit, but please leave my name near the top
 */
surface
IDscartissue(
	float	Ks			=  2, 
		Kd			= .5, 
		Ka			=  1, 
		roughness		= .2; 
)
{
	point Psh = transform("object",P);
	uniform float i, freq = 2.0, offset = 0;
	float nz = 0;
	color light = color (1,.3,.2);
	color dark = color (.015,.02,.02);
	color base;
	normal Nn = normalize(N);
	normal Nf = faceforward(normalize(N), I );
	vector V = normalize(-I);

	for (i = 0; i < 10; i = i + 1) {
		nz += abs(.5 - noise( (freq * Psh)+offset)) / freq;
		freq *= 1.2;
		offset += 10;
	}
	base = mix(dark,light,nz);
	P += Nn*nz*.3;
	N = calculatenormal(P);
	Nf = faceforward(normalize(N), I );

	Ci = ( base * (Ka + Kd*diffuse(Nf)) + 
	 	(1-nz)*Ks * specular(Nf,V,roughness) );
}

