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

  1. // Persistence Of Vision raytracer version 2.0 sample file.
  2.  
  3. // By Ville Saari
  4. // Copyright (c) 1991 Ferry Island Pixelboys
  5.  
  6. /*
  7. *
  8. * POV-Ray scene description for chess board.
  9. * Created: 01-Feb-91
  10. * Updated: 02-Mar-91
  11. *
  12. * This scene has 430 primitives in objects and 41 in bounding shapes and
  13. * it takes over 40 hours to render by standard amiga.
  14. *
  15. * If you do some nice modifications or additions to this file, please send 
  16. * me a copy. My Internet address is:
  17. *
  18. *         vsaari@niksula.hut.fi
  19. */
  20.  
  21. #include "shapes.inc"
  22. #include "colors.inc"
  23. #include "textures.inc"
  24.  
  25. camera {
  26.    location <59, 20, -48>
  27.    direction <0, 0, 1>
  28.    up <0, 1, 0>
  29.    right <4/3, 0, 0>
  30.    look_at <0, 0, 1>
  31. }
  32.  
  33. light_source { <800, 600, -200> colour White }
  34.  
  35. #declare Pawn = union {
  36.    sphere { <0, 7, 0>, 1.5 }
  37.  
  38.    sphere { <0, 0, 0>, 1 
  39.       scale <1.2, 0.3, 1.2>
  40.       translate 5.5*y
  41.    }
  42.  
  43.    intersection {
  44.       plane { y, 5.5 }
  45.       object {
  46.          Hyperboloid_Y
  47.          translate 5*y
  48.          scale <0.5, 1, 0.5>
  49.       }
  50.       plane { -y, -2.5 }
  51.    }
  52.  
  53.    sphere { <0, 0, 0>, 1 
  54.       scale <2, 0.5, 2>
  55.       translate <0, 2.3, 0>
  56.    }
  57.  
  58.    intersection {
  59.       sphere { <0, 0, 0>, 2.5 }
  60.       plane { -y, 0 }
  61.    }
  62. }
  63.  
  64. #declare Rook = union {
  65.    intersection {
  66.       union {
  67.          plane { +x, -0.5 }
  68.          plane { -x, -0.5 }
  69.          plane { y, 9 }
  70.       }
  71.  
  72.       union {
  73.          plane { +z, -0.5 }
  74.          plane { -z, -0.5 }
  75.          plane { y, 9 }
  76.       }
  77.  
  78.       plane { y, 10 }
  79.       object { Cylinder_Y scale <2, 1, 2> }
  80.       object { Cylinder_Y scale <1.2, 1, 1.2> inverse }
  81.       plane { -y, -8 }
  82.    }
  83.  
  84.    intersection {
  85.       plane { y, 8 }
  86.       object { Hyperboloid_Y
  87.          scale <1, 1.5, 1>
  88.          translate 5.401924*y
  89.       }
  90.       plane { -y, -3 }
  91.    }
  92.  
  93.    sphere { <0, 0, 0>, 1 
  94.       scale <2.5, 0.5, 2.5>
  95.       translate 2.8*y
  96.    }
  97.  
  98.    intersection {
  99.       sphere { <0, 0, 0>, 3 }
  100.       plane { -y, 0 }
  101.    }
  102. }
  103.  
  104. #declare Knight = union {
  105.    intersection {
  106.       object { Cylinder_Z
  107.          scale <17.875, 17.875, 1>
  108.          translate <-18.625, 7, 0>
  109.          inverse
  110.       }
  111.  
  112.       object { Cylinder_Z
  113.          scale <17.875, 17.875, 1>
  114.          translate <18.625, 7, 0>
  115.          inverse
  116.       }
  117.  
  118.       object { Cylinder_X
  119.          scale <1, 5.1, 5.1>
  120.          translate <0, 11.2, -5>
  121.          inverse
  122.       }
  123.  
  124.       union {
  125.          plane { y, 0
  126.             rotate 30*x
  127.             translate 9.15*y
  128.          }
  129.          plane { z, 0
  130.             rotate -20*x
  131.             translate 10*y
  132.          }
  133.       }
  134.  
  135.       union {
  136.          plane { -y, 0
  137.             rotate 30*x
  138.             translate 7.15*y
  139.          }
  140.          plane { y, 0
  141.             rotate 60*x
  142.             translate 7.3*y
  143.          }
  144.       }
  145.  
  146.       union {
  147.          plane { y, 0
  148.             rotate -45*y
  149.          }
  150.          plane { y, 0
  151.             rotate 45*z
  152.          }
  153.          translate 9*y
  154.       }
  155.  
  156.       object { Cylinder_Y scale <2, 1, 2> }
  157.       sphere { <0, 7, 0>, 4 }
  158.    }
  159.  
  160.    sphere { <0, 0, 0>, 1 
  161.       scale <2.5, 0.5, 2.5>
  162.       translate <0, 2.8, 0>
  163.    }
  164.  
  165.    intersection {
  166.       sphere { <0, 0, 0>, 3 }
  167.       plane { -y, 0 }
  168.    }
  169. }
  170.  
  171. #declare Bishop = union {
  172.    sphere { <0, 10.8, 0>, 0.4 }
  173.  
  174.    intersection {
  175.       union {
  176.          plane { -z, -0.25 }
  177.          plane { +z, -0.25 }
  178.          plane { y, 0  }
  179.          rotate 30*x
  180.          translate 8.5*y
  181.       }
  182.  
  183.       sphere { <0, 0, 0>, 1 
  184.          scale <1.4, 2.1, 1.4>
  185.          translate 8.4*y
  186.       }
  187.  
  188.       plane { -y, -7 }
  189.    }
  190.  
  191.    sphere { <0, 0, 0>, 1 
  192.       scale <1.5, 0.4, 1.5>
  193.       translate 7*y
  194.    }
  195.  
  196.    intersection {
  197.       plane { y, 7 }
  198.       object {
  199.          Hyperboloid_Y
  200.          scale <0.6, 1.4, 0.6>
  201.          translate 7*y
  202.       }
  203.       plane { -y, -3 }
  204.    }
  205.  
  206.    sphere { <0, 0, 0>, 1 
  207.       scale <2.5, 0.5, 2.5>
  208.       translate 2.8*y
  209.    }
  210.  
  211.    intersection {
  212.       sphere { <0, 0, 0>, 3 }
  213.       plane { -y, 0 }
  214.    }
  215. }
  216.  
  217. #declare QueenAndKing = union {
  218.    sphere { <0, 10.5, 0>, 1.5 }
  219.  
  220.    intersection {
  221.       union {
  222.          sphere { <1.75, 12, 0>, 0.9  rotate 150*y }
  223.          sphere { <1.75, 12, 0>, 0.9  rotate 120*y }
  224.          sphere { <1.75, 12, 0>, 0.9  rotate 90*y }
  225.          sphere { <1.75, 12, 0>, 0.9  rotate 60*y }
  226.          sphere { <1.75, 12, 0>, 0.9  rotate 30*y }
  227.          sphere { <1.75, 12, 0>, 0.9  }
  228.          sphere { <1.75, 12, 0>, 0.9  rotate -30*y }
  229.          sphere { <1.75, 12, 0>, 0.9  rotate -60*y }
  230.          sphere { <1.75, 12, 0>, 0.9  rotate -90*y }
  231.          sphere { <1.75, 12, 0>, 0.9  rotate -120*y }
  232.          sphere { <1.75, 12, 0>, 0.9  rotate -150*y }
  233.          sphere { <1.75, 12, 0>, 0.9  rotate  180*y }
  234.          inverse
  235.       }
  236.  
  237.       plane { y, 11.5 }
  238.  
  239.       object { QCone_Y
  240.          scale <1, 3, 1>
  241.          translate 5*y
  242.       }
  243.  
  244.       plane { -y, -8 }
  245.    }
  246.  
  247.    sphere { <0, 0, 0>, 1
  248.       scale <1.8, 0.4, 1.8>
  249.       translate 8*y
  250.    }
  251.  
  252.    intersection {
  253.       plane { y, 8 }
  254.       object { Hyperboloid_Y
  255.          scale <0.7, 1.6, 0.7>
  256.          translate 7*y
  257.       }
  258.       plane { -y, -3 }
  259.    }
  260.  
  261.    sphere { <0, 0, 0>, 1 
  262.       scale <2.5, 0.5, 2.5>
  263.       translate 2.8*y
  264.    }
  265.  
  266.    intersection {
  267.       sphere { <0, 0, 0>, 3 }
  268.       plane { <0, -1, 0>, 0 }
  269.    }
  270. }
  271.  
  272. #declare Queen = union {
  273.    sphere { <0, 12.3, 0>, 0.4 }
  274.    object { QueenAndKing }
  275. }
  276.  
  277. #declare King = union {
  278.    intersection {
  279.       union {
  280.          intersection {
  281.             plane { y, 13 }
  282.             plane { -y, -12.5 }
  283.          }
  284.  
  285.          intersection {
  286.             plane { +x, 0.25 }
  287.             plane { -x, 0.25 }
  288.          }
  289.       }
  290.  
  291.       plane { +z,  0.25 }
  292.       plane { -z,  0.25 }
  293.       plane { +x,  0.75 }
  294.       plane { -x,  0.75 }
  295.       plane { +y,  13.5  }
  296.       plane { -y,  -11.5  }
  297.    }
  298.  
  299.    object { QueenAndKing }
  300. }
  301.  
  302. #declare WWood = texture {
  303.    pigment {
  304.       wood
  305.       turbulence 0.1
  306.       colour_map {
  307.          [ 0.0 0.35 colour red 0.7  green 0.4
  308.                     colour red 0.7  green 0.4  ]
  309.          [ 0.35 1.0 colour red 0.95 green 0.62
  310.                     colour red 0.95 green 0.62 ]
  311.       }
  312.       scale <0.6, 1000.0, 0.6>
  313.       translate <200.0, 0.0, 100.0>
  314.    }
  315.    finish {
  316.       specular 1
  317.       roughness 0.02
  318.    }
  319. }
  320.  
  321. #declare BWood = texture {
  322.    pigment {
  323.       wood
  324.       turbulence 0.1
  325.       colour_map {
  326.          [ 0.0 0.55 colour red 0.45 green 0.25
  327.          colour red 0.45 green 0.25 ]
  328.          [ 0.55 1.0 colour red 0.30 green 0.16
  329.          colour red 0.30 green 0.16 ]
  330.       }
  331.       scale <0.6, 1000.0, 0.6>
  332.       translate <100.0, 0.0, -200.0>
  333.    }
  334.    finish {
  335.       specular 1
  336.       roughness 0.02
  337.    }
  338. }
  339.  
  340. #declare WPawn = object {
  341.    Pawn
  342.  
  343.    bounded_by { sphere { <0, 4, 0>, 4.72 } }
  344.  
  345.    texture {
  346.       WWood
  347.       pigment { quick_color red 0.95 green 0.62 }
  348.    }
  349. }
  350.  
  351. #declare BPawn = object {
  352.    Pawn
  353.  
  354.    bounded_by { sphere { <0, 4, 0>, 4.72 } }
  355.  
  356.    texture {
  357.       BWood
  358.       pigment { quick_color red 0.4 green 0.2 }
  359.    }
  360. }
  361.  
  362. #declare WRook = object {
  363.    Rook
  364.  
  365.    bounded_by { sphere { <0, 5, 0>, 5.831 } }
  366.  
  367.    texture {
  368.       WWood
  369.       pigment { quick_color red 0.95 green 0.62 }
  370.    }
  371. }
  372.  
  373. #declare BRook = object {
  374.    Rook
  375.  
  376.    bounded_by { sphere { <0, 5, 0>, 5.831 } }
  377.  
  378.    texture {
  379.       BWood
  380.       pigment { quick_color red 0.4 green 0.2 }
  381.    }
  382. }
  383.  
  384. #declare WKnight = object {
  385.    Knight
  386.  
  387.    bounded_by { sphere { <0, 5, 0>, 5.831 } }
  388.  
  389.    texture {
  390.       WWood
  391.       pigment { quick_color red 0.95 green 0.62 }
  392.    }
  393. }
  394.  
  395. #declare BKnight = object {
  396.    Knight
  397.    rotate 180*y
  398.  
  399.    bounded_by { sphere { <0, 5, 0>, 5.831 } }
  400.  
  401.    texture { 
  402.       BWood
  403.       pigment { quick_color red 0.4 green 0.2 }
  404.    }
  405. }
  406.  
  407. #declare WBishop = object {
  408.    Bishop
  409.  
  410.    bounded_by { sphere { <0, 5.5, 0>, 6.265 } }
  411.  
  412.    texture {
  413.       WWood
  414.       pigment { quick_color red 0.95 green 0.62 }
  415.    }
  416. }
  417.  
  418. #declare BBishop = object {
  419.    Bishop
  420.    rotate 180*y
  421.  
  422.    bounded_by { sphere { <0, 5.5 ,0>, 6.265 } }
  423.  
  424.    texture {
  425.       BWood
  426.       pigment { quick_color red 0.4 green 0.2 }
  427.    }
  428. }
  429.  
  430. #declare WQueen = object {
  431.    Queen
  432.  
  433.    bounded_by {
  434.       intersection {
  435.          sphere { <0, 6, 0>, 6.71 }
  436.          object { Cylinder_Y scale <3, 1, 3> }
  437.       }
  438.    }
  439.  
  440.    texture {
  441.       WWood
  442.       pigment { quick_color red 0.95 green 0.62 }
  443.    }
  444. }
  445.  
  446. #declare BQueen = object {
  447.    Queen
  448.  
  449.    bounded_by {
  450.       intersection {
  451.          sphere { <0, 6, 0>, 6.71 }
  452.          object { Cylinder_Y scale <3, 1, 3> }
  453.       }
  454.    }
  455.  
  456.    texture {
  457.       BWood
  458.       pigment { quick_color red 0.4 green 0.2 }
  459.    }
  460. }
  461.  
  462. #declare WKing = object {
  463.    King
  464.  
  465.    bounded_by {
  466.       intersection {
  467.          sphere { <0, 6.5, 0>, 7.16 }
  468.          object { Cylinder_Y scale <3, 1, 3> }
  469.       }
  470.    }
  471.  
  472.    texture {
  473.       WWood
  474.       pigment { quick_color red 0.95 green 0.62 }
  475.    }
  476. }
  477.  
  478. #declare BKing = object {
  479.    King
  480.  
  481.    bounded_by {
  482.       intersection {
  483.          sphere { <0, 6.5, 0>, 7.16 }
  484.          object { Cylinder_Y scale <3, 1, 3> }
  485.       }
  486.    }
  487.  
  488.    texture {
  489.       BWood
  490.       pigment { quick_color red 0.4 green 0.2 }
  491.    }
  492. }
  493.  
  494. /* Sky */
  495. sphere { <0, -39000, 0>, 40000
  496.    inverse
  497.  
  498.    pigment {
  499.       bozo
  500.       turbulence 0.6
  501.       colour_map {
  502.          [0 0.5 colour red 0.4 green 0.5 blue 1
  503.                 colour red 0.4 green 0.5 blue 1.0]
  504.          [0.5 0.7 colour red 0.4 green 0.5 blue 1
  505.                   colour red 1 green 1 blue 1.0]
  506.          [0.7 1 colour red 1 green 1 blue 1
  507.                 colour red 0.7 green 0.7 blue 0.7]
  508.       }
  509.       scale 500
  510.       quick_color red 0.4 green 0.5 blue 1
  511.    }
  512.    finish {
  513.       ambient 1
  514.       diffuse 0
  515.    }
  516. }
  517.  
  518. /* Ground */
  519. plane { y, -80
  520.    pigment { Green }
  521.    finish {
  522.       crand 0.05
  523.       ambient 0.5
  524.       diffuse 0.5
  525.    }
  526. }
  527.  
  528. #declare Frame = intersection {
  529.    plane { +y, -0.0001 }
  530.    plane { -y, 3 }
  531.    plane { -z, 35 }
  532.    plane { <-1, 0, 1>, 0 }
  533.    plane { < 1, 0, 1>, 0 }
  534. }
  535.  
  536. union {
  537.    union {
  538.       object {
  539.          union {
  540.             object { Frame }
  541.             object { Frame rotate 180*y }
  542.          }
  543.  
  544.          pigment {
  545.             wood
  546.             turbulence 0.3
  547.             scale <0.8, 1000, 0.8>
  548.             rotate -88*z
  549.             translate <200, 40, -20>
  550.             quick_color red 0.5 green 0.25
  551.          }
  552.          finish {
  553.             specular 1
  554.             roughness 0.02
  555.          }
  556.       } // object
  557.  
  558.       object {
  559.          union {
  560.             object { Frame rotate -90*y }
  561.             object { Frame rotate  90*y }
  562.          }
  563.  
  564.          pigment {
  565.             wood
  566.             turbulence 0.3
  567.             scale <0.8, 1000, 0.8>
  568.             rotate -91*x
  569.             translate <100, 30, 0>
  570.             quick_color red 0.5 green 0.25
  571.          }
  572.          finish {
  573.             specular 1
  574.             roughness 0.02
  575.          }
  576.       } // object
  577.  
  578.       /* Board */
  579.       intersection {
  580.          plane { +x, 32 }
  581.          plane { -x, 32 }
  582.          plane { +y, 0 }
  583.          plane { -y, 1 }
  584.          plane { +z, 32 }
  585.          plane { -z, 32 }
  586.  
  587.          texture {
  588.             tiles {
  589.                texture {
  590.                   pigment {
  591.                      marble
  592.                      turbulence 1.0
  593.                      colour_map {
  594.                         [0.0 0.7 colour White
  595.                                  colour White]
  596.                         [0.7 0.9 colour White
  597.                                  colour red 0.8 green 0.8 blue 0.8]
  598.                         [0.9 1.0 colour red 0.8 green 0.8 blue 0.8
  599.                                  colour red 0.5 green 0.5 blue 0.5]
  600.                      }
  601.                      scale <0.6, 1, 0.6>
  602.                      rotate -30*y
  603.                   }
  604.                   finish {
  605.                      specular 1
  606.                      roughness 0.02
  607.                      reflection 0.25
  608.                   }
  609.                } // texture
  610.                tile2
  611.                texture {
  612.                   pigment {
  613.                      granite
  614.                      scale <0.3, 1, 0.3>
  615.                      colour_map {
  616.                         [0 1 colour Black
  617.                              colour red 0.5 green 0.5 blue 0.5]
  618.                      }
  619.                   }
  620.                   finish {
  621.                      specular 1
  622.                      roughness 0.02
  623.                      reflection 0.25
  624.                   }
  625.                }
  626.             } // texture
  627.             scale <8, 1, 8>
  628.          } //texture
  629.       } // intersection
  630.  
  631.       /* Table */
  632.       union {
  633.          intersection {
  634.             plane { +y, -3 }
  635.             plane { -y,  8 }
  636.             sphere { <0, -5.5, 0>, 55 }
  637.          }
  638.  
  639.          intersection {
  640.             plane { y, -8 }
  641.             object {
  642.                Hyperboloid_Y
  643.                scale <10, 20, 10>
  644.                translate -20*y
  645.             }
  646.          }
  647.  
  648.          pigment {
  649.             granite
  650.             scale 6
  651.          }
  652.          finish {
  653.             specular 1
  654.             roughness 0.02
  655.             reflection 0.3
  656.          }
  657.       } // union
  658.  
  659.       bounded_by { plane { y, 0 } }
  660.    }
  661.  
  662.    union {
  663.       object { WPawn translate <-28, 0, -20> }
  664.       object { WPawn translate <-20, 0, -20> }
  665.       object { WPawn translate <-12, 0, -20> }
  666.       object { WPawn translate < -4, 0, -20> }
  667.       object { WPawn translate <  4, 0, -20> }
  668.       object { WPawn translate < 12, 0, -20> }
  669.       object { WPawn translate < 20, 0, -20> }
  670.       object { WPawn translate < 28, 0, -20> }
  671.  
  672.       object { WRook   translate <-28, 0, -28> }
  673.       object { WKnight translate <-20, 0, -28> }
  674.       object { WBishop translate <-12, 0, -28> }
  675.       object { WQueen  translate < -4, 0, -28> }
  676.       object { WKing   translate <  4, 0, -28> }
  677.       object { WBishop translate < 12, 0, -28> }
  678.       object { WKnight translate < 20, 0, -28> }
  679.       object { WRook   translate < 28, 0, -28> }
  680.  
  681.       bounded_by {
  682.          object {
  683.             Cylinder_X
  684.             scale <1, 9.56, 9.56>
  685.             translate <0, 6.5, -24>
  686.          }
  687.       }
  688.    }
  689.  
  690.    union {
  691.       object { BPawn translate <-28, 0, 20> }
  692.       object { BPawn translate <-20, 0, 20> }
  693.       object { BPawn translate <-12, 0, 20> }
  694.       object { BPawn translate < -4, 0, 20> }
  695.       object { BPawn translate <  4, 0, 20> }
  696.       object { BPawn translate < 12, 0, 20> }
  697.       object { BPawn translate < 20, 0, 20> }
  698.       object { BPawn translate < 28, 0, 20> }
  699.  
  700.       object { BRook   translate <-28, 0, 28> }
  701.       object { BKnight translate <-20, 0, 28> }
  702.       object { BBishop translate <-12, 0, 28> }
  703.       object { BQueen  translate < -4, 0, 28> }
  704.       object { BKing   translate <  4, 0, 28> }
  705.       object { BBishop translate < 12, 0, 28> }
  706.       object { BKnight translate < 20, 0, 28> }
  707.       object { BRook   translate < 28, 0, 28> }
  708.  
  709.       bounded_by {
  710.          object {
  711.             Cylinder_X
  712.             scale <1, 9.56, 9.56>
  713.             translate <0, 6.5, 24>
  714.          }
  715.       }
  716.    }
  717.  
  718.    bounded_by {
  719.       intersection {
  720.          plane { y, 13.5 }
  721.          sphere { -30*y, 63 }
  722.       }
  723.    }
  724. }
  725.