home *** CD-ROM | disk | FTP | other *** search
/ Stone Design / Stone Design.iso / Stone_Friends / Wave / WavesWorld / Source / Shaders / RCShaders / RCDroop.sl < prev    next >
Encoding:
Text File  |  1995-03-22  |  431 b   |  19 lines

  1. /* Listing 16.27  Displacement shader with catenary droop in y*/
  2. /*
  3.  * droop(): a displacement shader for making a surface "sag" along t.
  4. */
  5. #define M_E 2.7182818284590452354    /* e */
  6.  
  7. displacement 
  8. RCDroop ( 
  9.     float    Km = 0.05 )
  10. {
  11.     float droop, yDel;
  12.  
  13.     droop = (t-.5)*2;    /* t in [0,1] goes to droop in [-1,1] */
  14.  
  15.     yDel = -Km * ( M_E + (1/M_E) - (exp(droop)+exp(-droop)) );
  16.     setycomp(P, ycomp(P) + yDel);
  17.     N = calculatenormal(P);
  18. }
  19.