home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Multimedia / k3d-setup-0.7.11.0.exe / share / k3d / shaders / surface / k3d_rubber.sl < prev    next >
Encoding:
Text File  |  2008-01-23  |  655 b   |  26 lines

  1. /* Copyrighted Pixar 1989 */
  2. /* From the RenderMan Companion p.385 */
  3. /* Listing 16.38  Rubber surface shader*/
  4.  
  5. /*
  6.  * rubber(): This shader generates a rubber surface. It is a matte shader that
  7.  * adds in a little white dust to mimic the dust on a new eraser.
  8.  */
  9. surface
  10. k3d_rubber( 
  11.     float    Ka        = 1.0, 
  12.         Kd        = 1.0, 
  13.         txtscale    = 1.5 )
  14. {
  15.     point    Nf = faceforward(normalize(N),I), 
  16.         Ploc = transform("shader", P);  /* Move to shader space */
  17.     color    cout, white=1;
  18.  
  19.     /* Mix in some white dust. */
  20.     cout = mix(Cs, white, .05* (float noise(txtscale*Ploc)));
  21.  
  22.     /* Compute a matte surface. */
  23.     Oi = Os;
  24.     Ci = Os * cout * ( Ka*ambient() + Kd*diffuse(Nf) ) ;
  25. }
  26.