/*---------------------------------------------------------------------- * * dswknurl.sl - dsward@webnation.com * this shader wraps a sinusoidal displacement on the surface * . * * freq - "frequency" of the knurl * depth - magnitude of knurl * sORt - direction of knurl, 0=s, 1=t *--------------------------------------------------------------------*/ displacement dswknurl(float freq = 100, depth = 0.005, sORt = 0) { varying point sN; varying float position, amplitude; P = transform("shader", P); N = transform("shader", N + point "shader" (0,0,0)); if (sORt == 0) { position = s; } else { position = t; } amplitude = sin(2 * PI * freq * position) - 1; P += normalize(N) * amplitude * depth; P = transform("shader", "current", P); N = calculatenormal(P); }
|
|
|
|
|
|
|