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

  1. /* spotlight.sl - Standard spot light source for RenderMan Interface.
  2.  * (c) Copyright 1988, Pixar.
  3.  *
  4.  * The RenderMan (R) Interface Procedures and RIB Protocol are:
  5.  *     Copyright 1988, 1989, Pixar.  All rights reserved.
  6.  * RenderMan (R) is a registered trademark of Pixar.
  7.  */
  8.  
  9. light k3d_spotlight(float intensity = 1;
  10.             color lightcolor = 1;
  11.             point from = point "shader"(0, 0, 0);
  12.             point to = point "shader"(0, 0, 1);
  13.             float coneangle = radians(30);
  14.             float conedeltaangle = radians(5);
  15.             float beamdistribution = 2;)
  16. {
  17.   float atten, cosangle;
  18.   uniform vector A = normalize(to - from);
  19.  
  20.   illuminate(from, A, coneangle)
  21.   {
  22.     cosangle = (L.A) / length(L);
  23.     atten = pow(cosangle, beamdistribution) / (L.L);
  24.     atten *=
  25.       smoothstep(cos(coneangle), cos(coneangle - conedeltaangle), cosangle);
  26.     Cl = atten * intensity * lightcolor;
  27.   }
  28. }
  29.