/* Copyrighted Pixar 1989 */ /* From the RenderMan Companion p.368 */ /* Listing 16.25 Surface shader to make a cylinder look like a filament */ /* * filament(): map a filament-like spiral onto the surface of a cylinder. */ surface filament ( float frequency = 5.0, phase = 0.0, width = 0.3 ) { /* Calculate the distance of (s,t) from a spiral as a fraction [0,1] */ float offset = mod((t*frequency + s + phase), 1.0); /* Threshold the fraction against the fractional filament width */ if (offset < width) { Ci = Cs; Oi = 1.0; } else { Ci = 0.0; Oi = 0.0; } }