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

  1. /* Copyrighted Pixar 1989 */
  2. /* From the RenderMan Companion p.370 */
  3. /* Listing 16.27  Displacement shader with catenary droop in y*/
  4.  
  5. /*
  6.  * droop(): a displacement shader for making a surface "sag" along t.
  7. */
  8. #include "k3d_constants.h" 
  9.  
  10. displacement 
  11. k3d_droop ( 
  12.     float    Km = 0.05 )
  13. {
  14.     float droop, yDel;
  15.  
  16.     droop = (t-.5)*2;    /* t in [0,1] goes to droop in [-1,1] */
  17.  
  18.     yDel = -Km * ( M_E + (1/M_E) - (exp(droop)+exp(-droop)) );
  19.     setycomp(P, ycomp(P) + yDel);
  20.     N = calculatenormal(P);
  21. }
  22.