home *** CD-ROM | disk | FTP | other *** search
/ Chestnut's Multimedia Mania / MM_MANIA.ISO / graphics / povscn20 / piece3.pov < prev    next >
Text File  |  1993-09-27  |  8KB  |  272 lines

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