home *** CD-ROM | disk | FTP | other *** search
/ Altsys Virtuoso 2.0K / virtuoso_20k.iso / DemoApps / Graphics / Viewers / raytracers / rpi / Source / bg.c next >
Encoding:
C/C++ Source or Header  |  1991-10-08  |  801 b   |  46 lines

  1.  
  2. /*
  3.  * (c) 1988 by George Kyriazis
  4.  */
  5.  
  6. /*
  7.  * the background color.
  8.  * can be changed to have any kind of background texturing.  (hint hint)
  9.  */
  10.  
  11. #include "ray.h"
  12.  
  13. struct    color    bgcolor(r)
  14. struct    ray    r;
  15. {
  16.     struct    color    c;
  17.  
  18. /* if it is above the appropriate axis just give a grey value */
  19. /* if below give a gradually whiter color                     */
  20.     switch( bgflag ) {
  21.         case NONE:
  22.             c.r = c.g = c.b = 0.2;
  23.             break;
  24.         case X:
  25.             if( r.dir.x > 0.0 )
  26.                 c.r = c.g = c.b = 0.2;
  27.             else
  28.                 c.r = c.g = c.b = 0.2 - 0.8 * r.dir.x;
  29.             break;
  30.         case Y:
  31.             if( r.dir.y > 0.0 )
  32.                 c.r = c.g = c.b = 0.2;
  33.             else
  34.                 c.r = c.g = c.b = 0.2 - 0.8 * r.dir.y;
  35.             break;
  36.         case Z:
  37.             if( r.dir.z > 0.0 )
  38.                 c.r = c.g = c.b = 0.2;
  39.             else
  40.                 c.r = c.g = c.b = 0.2 - 0.8 * r.dir.z;
  41.             break;
  42.     }
  43.  
  44.     return c;
  45. }
  46.