Procedural Weathering

Based on seeing the VRay dirt shader, I decided to try replicate it in Renderman.

The above image was created using the following function with a couple of additional layers of noise to create the streak effect.

void dirtOcclusion (
	normal NN; vector down; float invmaxdistance, downmaxdistance, invsamples, downsamples;
	output float invocc, downocc;
)
{
	extern point P;
			
	downocc = 1;
	invocc = 1;
	
	downocc -= occlusion(P, down, downsamples, "coneangle", PI/6, "bias", 0.1, "maxvariation", 0, "hitsides", "front", "maxdist", downmaxdistance, "falloff", 0.001);
	invocc -= occlusion(P, -NN, invsamples, "coneangle", PI/2 , "bias", 0.1, "maxvariation", 0, "maxdist", invmaxdistance, "hitsides", "back", "falloff", 0);
}

2 thoughts on “Procedural Weathering”

  1. How would you go about doing procedural weathering with the dirt shader in vray? I’ve always tried to get it to look like your test in renderman but I could never get it to react well

Leave a Reply

Your email address will not be published. Required fields are marked *