home *** CD-ROM | disk | FTP | other *** search
- /* rh_spot.sl - a custom spotlight shader similar to the default
- * non-attenuating spotlight in Rhino.
- * It is based on spotlight.sl by Pixar.
- *
- * spotlight.sl - Standard spot light source for RenderMan Interface.
- * (c) Copyright 1988, Pixar.
- *
- * The RenderMan (R) Interface Procedures and RIB Protocol are:
- * Copyright 1988, 1989, Pixar. All rights reserved.
- * RenderMan (R) is a registered trademark of Pixar.
- */
-
- light
- rh_spot ( float intensity = 1;
- color lightcolor = 1;
- point from = point "shader" (0,0,0);
- point to = point "shader" (0,0,1);
- float coneangle = radians(30);
- float conedeltaangle = radians(5);
- float beamdistribution = 2; )
- {
- float atten, cosangle;
-
- uniform vector A = normalize(to-from);
-
- illuminate (from, A, coneangle) {
- cosangle = (L . A) / length(L);
- atten = pow (cosangle, beamdistribution);
- atten *= smoothstep (cos(coneangle), cos(coneangle-conedeltaangle),
- cosangle);
- Cl = atten * intensity * lightcolor * 2;
- }
- }
-
-