home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Multimedia / k3d-setup-0.7.11.0.exe / share / k3d / shaders / displacemnt / k3d_grids_disp.sl < prev    next >
Encoding:
Text File  |  2008-01-23  |  1.3 KB  |  50 lines

  1. /* 2006-03-13 dan@3-e.net */ 
  2. #include "k3d_rmannotes.h" 
  3.  
  4.  normal
  5.  Displace (normal dir; float amp; float truedisp;)
  6.  {
  7.  extern point P;
  8.  float spacescale = length(vtransform("shader", dir));
  9.  vector Ndisp = dir * (amp / max(spacescale,1e-6));
  10.  P += truedisp * Ndisp;
  11.  return normalize (calculatenormal (P + (1-truedisp)*Ndisp));
  12.  }
  13.  
  14.  displacement k3d_grids_disp (
  15. float freq0=22.2; 
  16. float rotation0=26.5; 
  17. float fuzz0=0.136; 
  18. float linewidth0=0.368; 
  19. color SurfaceColor=color(1,1,1); 
  20. color GridColor=color(0,0,0); 
  21. float freq1=44.9; 
  22. float rotation1=61.8; 
  23. float fuzz1=0.269; 
  24. float linewidth1=0.122; )
  25.  {
  26.  
  27. float ss0, tt0;
  28.  
  29. rotate2d(s, t, radians(rotation0), 0.5, 0.5, ss0, tt0);
  30. ss0 = repeat(ss0, freq0);
  31. tt0 = repeat(tt0, freq0);
  32.  
  33. color layer_opac0 = pulse(linewidth0, 1-linewidth0, fuzz0, tt0);
  34. color Ct0 = blend(SurfaceColor, GridColor, layer_opac0);
  35.  
  36. float ss1, tt1;
  37.  
  38. rotate2d(s, t, radians(rotation1), 0.5, 0.5, ss1, tt1);
  39. ss1 = repeat(ss1, freq1);
  40. tt1 = repeat(tt1, freq1);
  41.  
  42. color layer_opac1 = pulse(linewidth1, 1-linewidth1, fuzz1, tt1);
  43. color Ct1 = blend(SurfaceColor, GridColor, layer_opac1);
  44. float x=0.5; 
  45. /** ColorToFloat_Brick_2 **/
  46. float temp_f_2=(comp((x*Ct0+(1-x)*Ct1),0)+comp((x*Ct0+(1-x)*Ct1),1)+comp((x*Ct0+(1-x)*Ct1),2))/3;
  47.  N = Displace(normalize(N),0.05*temp_f_2,0);
  48.  }
  49.  
  50.