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

  1.  
  2. surface k3d_checkerboard_solid(
  3.     float Ka = 1.0;
  4.     float Kd = 1.0;
  5.     float Ks = 0.5;
  6.     float roughness = 0.1;
  7.     color specularcolor = 1.0;
  8.     uniform float TileX = 1.0;
  9.     uniform float TileY = 1.0;
  10.     uniform float TileZ = 1.0;
  11.     color EvenColor = 0.0;
  12.     string shadingspace = "shader";
  13.     )
  14. {
  15.     color Ct;
  16.     point Nf;
  17.     float x, y, z, sum;
  18.  
  19.     point Pshad = transform(shadingspace, P);
  20.  
  21.     x = mod(floor(xcomp(Pshad) / TileX), 2.0);
  22.     y = mod(floor(ycomp(Pshad) / TileY), 2.0);
  23.     z = mod(floor(zcomp(Pshad) / TileZ), 2.0);
  24.  
  25.     sum = mod(x + y + z, 2.0);
  26.     if(sum >= 0.5)
  27.         {
  28.             Ct = EvenColor;
  29.         }
  30.     else
  31.         {
  32.             Ct = Cs;
  33.         }
  34.  
  35.     // Diffuse reflection model ...
  36.     Nf = normalize(faceforward(N, I));
  37.     Oi = Os;
  38.     Ci = Os * (Ct * (Ka * ambient() + Kd * diffuse(Nf)) + specularcolor * Ks * specular(Nf, -normalize(I), roughness));
  39. }
  40.