home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #7 / amigamamagazinepolishissue1998.iso / varia / povray3 / povray3_fpu / pov3demo / showoff / sombrero.pov < prev    next >
Text File  |  1997-12-12  |  2KB  |  84 lines

  1. // Persistence Of Vision raytracer version 3.0 sample file.
  2. // File: Sombrero.POV
  3. // Vers: 3
  4. // Desc: Create the famous Sinusoidal rippled surface,
  5. //       using a 3-D sheet of spheres.
  6. //       Shows off the use of the while loop for creating a surface,
  7. //       and for smoothly changing colors.
  8. // Date: 10/1/95
  9. // Auth: Eduard Schwan
  10.  
  11.  
  12. #version 3.0
  13. global_settings { assumed_gamma 1.0 }
  14.  
  15. // ------------------------------------------------------------------
  16. // Look down at an angle at our creation
  17. camera
  18.   location  <0,1.5,-2>
  19.   direction 1*z
  20.   look_at   <0,-0.2,0>
  21.  
  22.  
  23. // ------------------------------------------------------------------
  24. // Simple background for a simple scene
  25. background { color rgb <0.9, 0.8, 0.7> }
  26.  
  27.  
  28. // ------------------------------------------------------------------
  29. // A light source
  30. light_source { <20, 20, -10> colour 1 }
  31.  
  32.  
  33. // ------------------------------------------------------------------
  34. // create a simple shape to use as a dot
  35. #declare BasicShape = sphere {  0, 1 }
  36.  
  37.  
  38. // ------------------------------------------------------------------
  39. // Set up the loop variables:
  40. // the Xc & Zc variables will go from -1.0 to +1.0
  41. // in NumIterations loops.
  42. #declare NumIterations = 8 // try 6 to 16
  43. #declare Increment     = 1.0/(NumIterations*2)
  44.  
  45.  
  46. // ------------------------------------------------------------------
  47. // Create a surface built from our basic shape
  48. // Zc goes from -1 to +1
  49. #declare Zc = -1.0
  50. #while (Zc<=1.0)
  51.   union
  52.   {
  53.  
  54.   // Xc goes from -1 to +1
  55.   #declare Xc = -1.0
  56.   #while (Xc<=1.0)
  57.     // precalculate height, since it is used several places below
  58.     #declare YHeight = sin(sqrt(Xc*Xc+Zc*Zc)*6.28*2)
  59.     object
  60.     {
  61.       BasicShape scale Increment
  62.       translate <Xc, YHeight/4, Zc>
  63.       texture
  64.       {
  65.         // colors change across the object, and also go from black
  66.         // in the valleys to full saturation at the peaks
  67.         pigment { color rgb <Xc/2+1, 1-Zc/2, YHeight/2+1>*YHeight }
  68.         finish { ambient 0.2 specular 0.5 roughness 0.05 reflection 0.2 }
  69.       }
  70.     }
  71.     // manually increment our counter inside the loop
  72.     #declare Xc=Xc+Increment
  73.   #end
  74.   }
  75.  
  76.   // manually increment our counters inside the loop
  77.   #declare Zc=Zc+Increment
  78.  
  79. #end
  80.  
  81.  
  82.