home *** CD-ROM | disk | FTP | other *** search
/ STraTOS 1997 April & May / STraTOS 1 - 1997 April & May.iso / CD01 / GRAPHICS / POV_3 / SCENES / EXAMPLES / LEVEL3 / PIECE3 / PIECE3.POV < prev   
Encoding:
Text File  |  2004-07-23  |  8.4 KB  |  279 lines

  1. // Persistence Of Vision raytracer version 3.0 sample file.
  2.  
  3. // piece 3
  4. // by Truman Brown (12/91)
  5.  
  6. // Due to the large number of objects, you will probably have to
  7. // have a lot of memory to render this scene.
  8. // Rendering time using a 25Mhz 386 w/Cyrix fpu is approximately 60 hours.
  9.  
  10. // NOTE: The following comment by Truman is no longer relevant.  The
  11. // gamma has been modified by the assumed_gamma setting below.  -dmf
  12. //
  13. //   The lighting is intentionally dim when the image is rendered.
  14. //   You can enhance the image using PicLab's gamma, brightness, and
  15. //   contrast command when you post-process the image.
  16.  
  17. #version 3.0
  18. global_settings { assumed_gamma 0.8 }
  19.  
  20. #include "colors.inc"
  21. #include "textures.inc"
  22. #include "shapes.inc"
  23.  
  24.  
  25. #declare YourTexture =
  26. texture {  /* Dan Farmer's oak texture { */
  27.    pigment {
  28.       wood
  29.       turbulence 0.05
  30.       color_map {
  31.          [0.00 0.10 color red 0.42 green 0.26 blue 0.15
  32.          color red 0.42 green 0.26 blue 0.15]
  33.          [0.10 0.90 color red 0.42 green 0.26 blue 0.15
  34.          color red 0.52 green 0.37 blue 0.26]
  35.          [0.90 1.01 color red 0.52 green 0.37 blue 0.26
  36.          color red 0.52 green 0.37 blue 0.26]
  37.       }
  38.       rotate 90*x
  39.       scale 3
  40.    }
  41. }
  42.  
  43. #declare BallTexture1 = /* Shiny sugar candy red */
  44. texture {
  45.    pigment { Firebrick }
  46.    finish {
  47.       ambient 0.0
  48.       diffuse 0.6
  49.       specular 1.00
  50.       roughness 0.00001
  51.    }
  52. }
  53.  
  54. #declare RodTexture1 = /* Dim goldish */
  55. texture {
  56.    pigment { Sienna }
  57.    finish {
  58.       ambient 0.0
  59.       diffuse 0.6
  60.       specular 1.00
  61.       roughness 0.00001
  62.    }
  63. }
  64.  
  65. #include "curly-q.inc" /* 1251 spheres rotating around in a ring    */
  66. /* brought to you by Spiral 2.0 and ctds 1.6 */
  67.  
  68. camera {
  69.    location  <  7.0,     50.0, -30.0 > /* Up high and in close.         */
  70.    direction <  0.0,      0.0,   2.0 > /* Though this doesn't highlight */
  71.    up        <  0.0,      1.0,   0.0 > /* the height of the piece, it   */
  72.    right     <  4/3,      0.0,   0.0 > /* gives the effect i'm looking  */
  73.    look_at   <  0.0,     15.0,   0.0 > /* for.  Feel free to change.    */
  74. }
  75.  
  76. light_source { <99, 70, -90> color red 0.1 green 0.1 blue 0.1 }
  77.  
  78. light_source { <-35, 80, -80> color red 0.5 green 0.5 blue 0.5 }
  79.  
  80. #declare xrod = /* Horizontal left-right rod floating at <0 0 0> */
  81. object {
  82.    Cylinder_X
  83.    clipped_by {
  84.       plane {  x, 100.0 }
  85.       plane { -x, 100.0 }
  86.    }
  87.    texture {
  88.       RodTexture1
  89.    }
  90.    scale <1.0, 0.3, 0.3>
  91. }
  92.  
  93. #declare zrod = /* Horizontal in-out rod floating at <0 0 0> */
  94. object {
  95.    Cylinder_Z
  96.    clipped_by {
  97.       plane {  z, 100.0 }
  98.       plane { -z, 100.0 }
  99.    }
  100.    texture {
  101.       RodTexture1
  102.    }
  103.    scale <0.3, 0.3, 1.0>
  104. }
  105.  
  106. union {                                      /* Build a floor grid */
  107.    object { zrod translate <-100, 0, 0> } /* extending beyond   */
  108.    object { zrod translate < -92, 0, 0> } /* camera view to be  */
  109.    object { zrod translate < -84, 0, 0> } /* captured in reflec-*/
  110.    object { zrod translate < -76, 0, 0> } /* tions.             */
  111.    object { zrod translate < -68, 0, 0> }
  112.    object { zrod translate < -60, 0, 0> }
  113.    object { zrod translate < -52, 0, 0> }
  114.    object { zrod translate < -44, 0, 0> }
  115.    object { zrod translate < -36, 0, 0> }
  116.    object { zrod translate < -28, 0, 0> }
  117.    object { zrod translate < -20, 0, 0> }
  118.    object { zrod translate < -12, 0, 0> }
  119.    object { zrod translate <  -4, 0, 0> }
  120.    object { zrod translate <   4, 0, 0> }
  121.    object { zrod translate <  12, 0, 0> }
  122.    object { zrod translate <  20, 0, 0> }
  123.    object { zrod translate <  28, 0, 0> }
  124.    object { zrod translate <  36, 0, 0> }
  125.    object { zrod translate <  44, 0, 0> }
  126.    object { zrod translate <  52, 0, 0> }
  127.    object { zrod translate <  60, 0, 0> }
  128.    object { zrod translate <  68, 0, 0> }
  129.    object { zrod translate <  76, 0, 0> }
  130.    object { zrod translate <  84, 0, 0> }
  131.    object { zrod translate <  92, 0, 0> }
  132.    object { zrod translate < 100, 0, 0> }
  133.  
  134.    object { xrod translate < 0, 0, -100> }
  135.    object { xrod translate < 0, 0,  -92> }
  136.    object { xrod translate < 0, 0,  -84> }
  137.    object { xrod translate < 0, 0,  -76> }
  138.    object { xrod translate < 0, 0,  -68> }
  139.    object { xrod translate < 0, 0,  -60> }
  140.    object { xrod translate < 0, 0,  -52> }
  141.    object { xrod translate < 0, 0,  -44> }
  142.    object { xrod translate < 0, 0,  -36> }
  143.    object { xrod translate < 0, 0,  -28> }
  144.    object { xrod translate < 0, 0,  -20> }
  145.    object { xrod translate < 0, 0,  -12> }
  146.    object { xrod translate < 0, 0,   -4> }
  147.    object { xrod translate < 0, 0,    4> }
  148.    object { xrod translate < 0, 0,   20> }
  149.    object { xrod translate < 0, 0,   36> }
  150.    object { xrod translate < 0, 0,   52> }
  151.    object { xrod translate < 0, 0,   64> }
  152.    object { xrod translate < 0, 0,   72> }
  153.    object { xrod translate < 0, 0,   80> }
  154.    object { xrod translate < 0, 0,   88> }
  155.    object { xrod translate < 0, 0,  100> }
  156. //    bounded_by {
  157. //       object { Cube scale <101.0, 0.5, 101.0> }
  158. //    }
  159. }
  160.  
  161. sphere { /* Big ellipsoid to reflect stuff */
  162.    <0, 0, 0>, 1
  163.    scale <6.25, 4.0, 6.25>
  164.    translate <0.0, 14.5, 0.0>
  165.  
  166.    texture {
  167.       pigment { SteelBlue }
  168.       finish {
  169.          ambient 0.0
  170.          diffuse 0.6
  171.          reflection 0.99
  172.          specular 1.0
  173.          roughness 0.00001
  174.       }
  175.    }
  176. }
  177.  
  178. plane { /* Sub-plane { to reflect poles and curly-q */
  179.    y, -1.5
  180.    texture {
  181.       pigment {
  182.          marble
  183.          turbulence 0.65
  184.          color_map {
  185.             [0.0   0.67   color Black
  186.                           color DimGray]
  187.             [0.67  0.775  color DimGray
  188.                           color SteelBlue]
  189.             [0.775 1.001  color SteelBlue
  190.                           color Black]
  191.          }
  192.          scale <10, 8, 8>
  193.          scale <20, 20, 20> /* Double scaled while debugging. */
  194.       }
  195.       finish {
  196.          ambient 0.05
  197.          diffuse 0.75
  198.          specular 1.0
  199.          roughness 0.00002432
  200.          reflection 0.95
  201.       }
  202.    }                /* This gets the gray under the   */
  203. }              /* curly-q and gets the blue to   */
  204. /* reflect off the curly-q nicely.*/
  205.  
  206. object { spirals translate <0.0, 14.75, 0.0> } /* The curly-q! */
  207.  
  208. #declare ball = /* Ball to top poles placed inside of curly-q */
  209. sphere {
  210.    <0, 14.75, 0>, 2
  211.    texture {
  212.       pigment { Firebrick }
  213.       finish {
  214.          reflection 0.95
  215.          ambient 0.0
  216.          diffuse 0.5
  217.          specular 1.0
  218.          roughness 0.00001
  219.       }
  220.    }
  221. }
  222.  
  223. #declare pole = /* Pole to be placed inside of curly-q */
  224. object {
  225.    Disk_Y
  226.    scale <0.5, 14.75, 0.5>
  227.  
  228.    texture {
  229.       pigment { Firebrick }
  230.       finish {
  231.          reflection 0.95
  232.          ambient 0.0
  233.          diffuse 0.5
  234.          specular 1.0
  235.          roughness 0.00001
  236.       }
  237.    }
  238. }
  239. /* Construct the poles. */
  240. object { pole translate <11, 0, 0> rotate <0,  18, 0> } /* Could have made this */
  241. object { pole translate <11, 0, 0> rotate <0,  54, 0> } /* a composite, but     */
  242. object { pole translate <11, 0, 0> rotate <0,  90, 0> } /* didn't see the point.*/
  243. object { pole translate <11, 0, 0> rotate <0, 126, 0> }
  244. object { pole translate <11, 0, 0> rotate <0, 162, 0> }
  245. object { pole translate <11, 0, 0> rotate <0, 198, 0> }
  246. object { pole translate <11, 0, 0> rotate <0, 234, 0> }
  247. object { pole translate <11, 0, 0> rotate <0, 270, 0> }
  248. object { pole translate <11, 0, 0> rotate <0, 306, 0> }
  249. object { pole translate <11, 0, 0> rotate <0, 342, 0> }
  250. /* Construct the balls. */
  251. object { ball translate <11, 0, 0> rotate <0,  18, 0> }
  252. object { ball translate <11, 0, 0> rotate <0,  54, 0> }
  253. object { ball translate <11, 0, 0> rotate <0,  90, 0> }
  254. object { ball translate <11, 0, 0> rotate <0, 126, 0> }
  255. object { ball translate <11, 0, 0> rotate <0, 162, 0> }
  256. object { ball translate <11, 0, 0> rotate <0, 198, 0> }
  257. object { ball translate <11, 0, 0> rotate <0, 234, 0> }
  258. object { ball translate <11, 0, 0> rotate <0, 270, 0> }
  259. object { ball translate <11, 0, 0> rotate <0, 306, 0> }
  260. object { ball translate <11, 0, 0> rotate <0, 342, 0> }
  261.  
  262. #declare Connector_1 = cylinder {
  263.    <0, 0, 0>, <1, 0, 0>, 1
  264.  
  265.    texture {
  266.       pigment { DimGray }
  267.       finish {
  268.          ambient 0.0
  269.          diffuse 0.6
  270.          specular 1.0
  271.          roughness 0.00001
  272.          reflection 0.25
  273.       }
  274.    }
  275. }
  276.  
  277. #include "links.inc" /* Poles linking interior balls and poles */
  278. object { links rotate <0, 18, 0> translate <0.0, 14.75, 0.0> }
  279.