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

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