/* * Actually it is a condensed version of the mango shader from Sig '92 "Writing RenderMan Shaders" */ /* * TLOrange.sl -- create an orange * * DESCRIPTION: * Creates an stippled orange surface. * * PARAMETERS: * Ka, Kd, Ks, roughness - the usual * * HINTS: * * AUTHOR: Tal Lancaster * tal AT renderman DOT org * * History: * Created: 9/4/96 */ #define BUMP_AMPLITUDE (1/30) #define BUMP_FREQUENCY (35) surface TLOrange ( float Ka = 1; float Kd = .8; float Ks = .8; float roughness = .2; ) { point Nf, V; point turb, p2; point newP; setxcomp (p2, sin (2 * PI * s)); setycomp (p2, 2*t); setzcomp (p2, cos (2 * PI * s)); turb = noise (BUMP_FREQUENCY * p2) * BUMP_AMPLITUDE; newP = calculatenormal (P + turb * normalize (N)); Nf = faceforward (normalize (newP), I); V = -normalize (I); Oi = 1; Ci = Cs * (Ka * ambient() + Kd * diffuse (Nf)) + Ks * specular (Nf, V, roughness); }