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

  1. // Persistence of Vision Raytracer Version 2.0
  2. //  "Pawns", a study in wood by Douglas Otwell
  3. //  Three pawns on a chessboard
  4. //   
  5. //  Thanks to Dan Farmer and Mike Miller for showing me how.
  6. //  The color maps were designed using Lutz Kretzschmar's cmapper v1.1.
  7.  
  8. #include "colors.inc"
  9. #include "shapes.inc"
  10. //#include "shapes.old"
  11. #include "textures.inc"
  12.  
  13. //
  14. //   Yellow pine, close grained
  15. //
  16. #declare Yellow_Pine = texture {
  17.    pigment {
  18.       wood
  19.       turbulence 0.02
  20.       color_map {
  21.          [0.000, 0.222  color red  0.808  green  0.671  blue  0.251  filter  0.000
  22.                         color red  0.808  green  0.671  blue  0.251  filter  0.000]
  23.          [0.222, 0.342  color red  0.808  green  0.671  blue  0.251  filter  0.000
  24.                         color red  0.600  green  0.349  blue  0.043  filter  0.000]
  25.          [0.342, 0.393  color red  0.600  green  0.349  blue  0.043  filter  0.000
  26.                         color red  0.808  green  0.671  blue  0.251  filter  0.000]
  27.          [0.393, 0.709  color red  0.808  green  0.671  blue  0.251  filter  0.000
  28.                         color red  0.808  green  0.671  blue  0.251  filter  0.000]
  29.          [0.709, 0.821  color red  0.808  green  0.671  blue  0.251  filter  0.000
  30.                         color red  0.533  green  0.298  blue  0.027  filter  0.000]
  31.          [0.821, 1      color red  0.533  green  0.298  blue  0.027  filter  0.000
  32.                         color red  0.808  green  0.671  blue  0.251  filter  0.000]
  33.       }
  34.       scale 0.1
  35.       translate 10*x
  36.    }
  37. }
  38.  
  39. // Yellow_Pine layer 2
  40. texture {
  41.    pigment {
  42.       wood
  43.       turbulence 0.01
  44.       color_map {
  45.          [0.000, 0.120   color red  1.000  green  1.000  blue  1.000  filter  1.000
  46.                          color red  0.702  green  0.412  blue  0.118  filter  0.608]
  47.          [0.120, 0.231   color red  0.702  green  0.412  blue  0.118  filter  0.608
  48.                          color red  0.702  green  0.467  blue  0.118  filter  0.608]
  49.          [0.231, 0.496   color red  0.702  green  0.467  blue  0.118  filter  0.608
  50.                          color red  1.000  green  1.000  blue  1.000  filter  1.000]
  51.          [0.496, 0.701   color red  1.000  green  1.000  blue  1.000  filter  1.000
  52.                          color red  1.000  green  1.000  blue  1.000  filter  1.000]
  53.          [0.701, 0.829   color red  1.000  green  1.000  blue  1.000  filter  1.000
  54.                          color red  0.702  green  0.467  blue  0.118  filter  0.608]
  55.          [0.829, 1       color red  0.702  green  0.467  blue  0.118  filter  0.608
  56.                          color red  1.000  green  1.000  blue  1.000  filter  1.000]
  57.       }
  58.       scale 0.5 
  59.       translate 10*x
  60.    }
  61. }
  62.  
  63. //
  64. //   Rosewood
  65. //
  66. #declare Rosewood = texture {
  67.    pigment {
  68.       bozo
  69.       turbulence 0.04
  70.       color_map {
  71.          [0.000, 0.256   color red  0.204  green  0.110  blue  0.078  filter  0.000
  72.                          color red  0.231  green  0.125  blue  0.090  filter  0.000]
  73.          [0.256, 0.393   color red  0.231  green  0.125  blue  0.090  filter  0.000
  74.                          color red  0.247  green  0.133  blue  0.090  filter  0.000]
  75.          [0.393, 0.581   color red  0.247  green  0.133  blue  0.090  filter  0.000
  76.                          color red  0.204  green  0.110  blue  0.075  filter  0.000]
  77.          [0.581, 0.726   color red  0.204  green  0.110  blue  0.075  filter  0.000
  78.                          color red  0.259  green  0.122  blue  0.102  filter  0.000]
  79.          [0.726, 0.983   color red  0.259  green  0.122  blue  0.102  filter  0.000
  80.                          color red  0.231  green  0.125  blue  0.086  filter  0.000]
  81.          [0.983, 1       color red  0.231  green  0.125  blue  0.086  filter  0.000
  82.                          color red  0.204  green  0.110  blue  0.078  filter  0.000]
  83.       }
  84.       scale <0.5, 0.5, 1>
  85.       translate 10*x
  86.    }
  87.    finish {
  88.       ambient 0.5
  89.       diffuse 0.8
  90.    }
  91. }
  92.  
  93. // Rosewood layer 2
  94. texture {
  95.    pigment {
  96.       wood
  97.       turbulence 0.04
  98.       color_map {
  99.          [0.000, 0.139   color red  0.545  green  0.349  blue  0.247  filter  1.000
  100.                          color red  0.000  green  0.000  blue  0.000  filter  0.004]
  101.          [0.139, 0.148   color red  0.000  green  0.000  blue  0.000  filter  0.004
  102.                          color red  0.000  green  0.000  blue  0.000  filter  0.004]
  103.          [0.148, 0.287   color red  0.000  green  0.000  blue  0.000  filter  0.004
  104.                          color red  0.545  green  0.349  blue  0.247  filter  1.000]
  105.          [0.287, 0.443   color red  0.545  green  0.349  blue  0.247  filter  1.000
  106.                          color red  0.545  green  0.349  blue  0.247  filter  1.000]
  107.          [0.443, 0.626   color red  0.545  green  0.349  blue  0.247  filter  1.000
  108.                          color red  0.000  green  0.000  blue  0.000  filter  0.004]
  109.          [0.626, 0.635   color red  0.000  green  0.000  blue  0.000  filter  0.004
  110.                          color red  0.000  green  0.000  blue  0.000  filter  0.004]
  111.          [0.635, 0.843   color red  0.000  green  0.000  blue  0.000  filter  0.004
  112.                          color red  0.545  green  0.349  blue  0.247  filter  1.000]
  113.          [0.843, 1       color red  0.545  green  0.349  blue  0.247  filter  1.000
  114.                          color red  0.545  green  0.349  blue  0.247  filter  1.000]
  115.       }
  116.       scale <0.5, 0.5, 1>
  117.       translate <10, 0, 0>
  118.    }
  119.    finish {
  120.       ambient 0.5
  121.       diffuse 0.8
  122.    }
  123. }
  124.  
  125. //
  126. //   Sandalwood ( makes a great burled maple, too)
  127. //
  128. #declare Sandalwood = texture {
  129.    pigment {
  130.       bozo
  131.       turbulence 0.2
  132.       color_map {
  133.          [0.000, 0.171   color red  0.725  green  0.659  blue  0.455  filter  0.000
  134.                          color red  0.682  green  0.549  blue  0.420  filter  0.000]
  135.          [0.171, 0.274   color red  0.682  green  0.549  blue  0.420  filter  0.000
  136.                          color red  0.557  green  0.451  blue  0.322  filter  0.000]
  137.          [0.274, 0.393   color red  0.557  green  0.451  blue  0.322  filter  0.000
  138.                          color red  0.725  green  0.659  blue  0.455  filter  0.000]
  139.          [0.393, 0.564   color red  0.725  green  0.659  blue  0.455  filter  0.000
  140.                          color red  0.682  green  0.549  blue  0.420  filter  0.000]
  141.          [0.564, 0.701   color red  0.682  green  0.549  blue  0.420  filter  0.000
  142.                          color red  0.482  green  0.392  blue  0.278  filter  0.000]
  143.          [0.701, 1       color red  0.482  green  0.392  blue  0.278  filter  0.000
  144.                          color red  0.725  green  0.659  blue  0.455  filter  0.000]
  145.       }
  146.       scale <0.2, 0.2, 1>
  147.       scale 2
  148.    }
  149. }
  150. // Sandalwood layer 2
  151. texture {
  152.    pigment {
  153.       bozo
  154.       turbulence 0.8
  155.       color_map {
  156.          [0.000, 0.087   color red  0.682  green  0.604  blue  0.380  filter  1.000
  157.                          color red  0.761  green  0.694  blue  0.600  filter  0.020]
  158.          [0.087, 0.226   color red  0.761  green  0.694  blue  0.600  filter  0.020
  159.                          color red  0.635  green  0.553  blue  0.325  filter  1.000]
  160.          [0.226, 0.348   color red  0.635  green  0.553  blue  0.325  filter  1.000
  161.                          color red  0.761  green  0.694  blue  0.600  filter  0.020]
  162.          [0.348, 0.496   color red  0.761  green  0.694  blue  0.600  filter  0.020
  163.                          color red  0.682  green  0.604  blue  0.380  filter  1.000]
  164.          [0.496, 0.565   color red  0.682  green  0.604  blue  0.380  filter  1.000
  165.                          color red  0.761  green  0.694  blue  0.600  filter  0.020]
  166.          [0.565, 0.661   color red  0.761  green  0.694  blue  0.600  filter  0.020
  167.                          color red  0.682  green  0.604  blue  0.380  filter  1.000]
  168.          [0.661, 0.835   color red  0.682  green  0.604  blue  0.380  filter  1.000
  169.                          color red  0.761  green  0.694  blue  0.600  filter  0.020]
  170.          [0.835, 1       color red  0.761  green  0.694  blue  0.600  filter  0.020
  171.                          color red  0.682  green  0.604  blue  0.380  filter  1.000]
  172.       }
  173.       scale 0.2
  174.       scale 2
  175.    }
  176. }
  177.  
  178. //
  179. //   Lights, Camera ...
  180. //
  181. camera {
  182.    location  <-8.0, 4.0, -14.0>
  183.    direction <0.0, 0.0, 2.0>
  184.    up        <0.0, 1.0, 0.0>
  185.    right     <4/3, 0.0, 0.0>
  186.    look_at   <-2.0, 0.0, -4.0>
  187. }
  188.  
  189. light_source { <100.0, 400.0, -600.0> color White }
  190.  
  191. //   a back-light to create a highlight on the board
  192. light_source { <12.0, 4.0, 12.0> color White }
  193.  
  194. //  We'll build our chessboard out of one big pine block and 32
  195. // little rosewood ones
  196. #declare Fours = union {
  197.    object { UnitBox
  198.       texture {
  199.          Rosewood
  200.          finish {
  201.             phong 0.3
  202.             ambient 0.5
  203.             diffuse 0.7
  204.             reflection 0.3
  205.          }
  206.       }
  207.       translate <-1, -1, 1>
  208.    }
  209.  
  210.    object { UnitBox
  211.       texture {
  212.          Rosewood
  213.          finish {
  214.             phong 0.3 
  215.             ambient 0.5
  216.             diffuse 0.7
  217.             reflection 0.3
  218.          }
  219.       }
  220.       translate <1, -1, -1>
  221.    }
  222.  
  223.    bounded_by { object { UnitBox scale <2, 1, 2> } }
  224. }
  225.  
  226. #declare Eights = union {
  227.    object { Fours
  228.       translate <-2, 0, 2>
  229.    }
  230.    object { Fours
  231.       translate <2, 0, 2>
  232.    }
  233.    object { Fours
  234.       translate <-2, 0, -2>
  235.    }
  236.    object { Fours
  237.       translate <2, 0, -2>
  238.    }
  239.  
  240.    bounded_by { object { UnitBox scale <4, 1, 4> } }
  241. }
  242.  
  243. //   Add another wood texture around the edges
  244. #declare rail = intersection {
  245.    object { UnitBox
  246.       scale <10, 0.25, 1>
  247.    }               
  248.  
  249.    plane { -x, 0 
  250.       rotate 45*y
  251.       translate -9*x
  252.    }
  253.  
  254.    plane { x, 0
  255.       rotate -45*y
  256.       translate 9*x
  257.    }
  258.  
  259.    translate <0, -0.25, -9>
  260.  
  261.    texture {
  262.       Sandalwood
  263.       finish { phong 0.4 }
  264.    }
  265. }
  266.  
  267. //
  268. //   Chessboard
  269. //
  270. #declare Chessboard = union {
  271.    object { Eights
  272.       translate <-4, 0, 4>
  273.    }
  274.    object { Eights
  275.       translate <4, 0, 4>
  276.    }
  277.    object { Eights
  278.       translate <-4, 0, -4>
  279.    }
  280.    object { Eights
  281.       translate <4, 0, -4>
  282.    }
  283.  
  284.    object { UnitBox
  285.       scale <8, 0.25, 8>
  286.       translate -0.25*y
  287.    }               
  288.  
  289.    object { rail rotate 0*y }
  290.    object { rail rotate 90*y }
  291.    object { rail rotate 180*y }
  292.    object { rail rotate 270*y }
  293.  
  294.    texture {
  295.       Yellow_Pine
  296.       finish {
  297.          phong 0.5
  298.          reflection 0.3
  299.       }
  300.       scale 2
  301.    }
  302.  
  303.    bounded_by { object { UnitBox scale <10, 1, 10> } }
  304. }
  305.  
  306. //
  307. //   Pawn
  308. //
  309. #declare pawn = union {
  310.    difference {
  311.       object { Disk_Y scale <8, 12.7468, 8> }
  312.       quartic {
  313.          < 1.0,  0.0,  0.0,   0.0,    2.0,  0.0,  0.0,  2.0,  0.0,-738.0,
  314.          0.0,  0.0,  0.0,   0.0,    0.0,  0.0,  0.0,  0.0,  0.0,   0.0,
  315.          1.0,  0.0,  0.0,   2.0,    0.0, 162.0,  0.0,  0.0,  0.0,   0.0,
  316.          1.0,   0.0, -738.0,   0.0,   6561.0>
  317.          sturm
  318.       }
  319.    }
  320.  
  321.    quartic {
  322.       < 1.0,  0.0,  0.0,   0.0,    2.0,  0.0,  0.0,  2.0,  0.0, -132.5,
  323.       0.0,  0.0,  0.0,   0.0,    0.0,  0.0,  0.0,  0.0,  0.0,   0.0,
  324.       1.0,  0.0,  0.0,   2.0,    0.0, 123.5,  0.0,  0.0,  0.0,   0.0,
  325.       1.0,  0.0, -132.5,  0.0,  3813.0625 >
  326.       sturm
  327.       translate -11.2468*y
  328.    }
  329.  
  330.    quartic {
  331.       < 1.0,  0.0,  0.0,   0.0,    2.0,  0.0,  0.0,  2.0,  0.0, -132.5,
  332.       0.0,  0.0,  0.0,   0.0,    0.0,  0.0,  0.0,  0.0,  0.0,   0.0,
  333.       1.0,  0.0,  0.0,   2.0,    0.0, 123.5,  0.0,  0.0,  0.0,   0.0,
  334.       1.0,  0.0, -132.5,  0.0,  3813.0625>
  335.       sturm
  336.       translate 11.2468*y
  337.    }
  338.  
  339.    //   Base
  340.    intersection {
  341.       object { Disk_Y
  342.          scale <12, 3, 12>
  343.          translate -15.7468*y
  344.       }
  345.       object { QCone_Y
  346.          translate -2*y
  347.       }
  348.    }
  349.  
  350.    //   Ball on top
  351.    sphere { <0, 17.7468, 0>, 7 }
  352.  
  353.    bounded_by { object { Disk_Y scale <14, 26, 14> } }
  354.  
  355.    translate 18.7468*y
  356.    scale 0.06
  357. }
  358.  
  359.  
  360. //   Now let's put the pieces together
  361.  
  362. object { Chessboard }
  363.  
  364. //   Pawn 1
  365. object { pawn
  366.    texture {
  367.       Yellow_Pine
  368.       finish { phong 0.8 }
  369.    }
  370.  
  371.    rotate 60*y
  372.    translate <-5, 0, -7>
  373. }
  374.  
  375. //   Pawn 2
  376. object { pawn
  377.    texture {
  378.       Yellow_Pine
  379.       finish { phong 0.8 }
  380.    }
  381.  
  382.    rotate 30*y
  383.    translate <1, 0, -1>
  384. }
  385.  
  386. //   Pawn 3
  387. object { pawn 
  388.    texture {
  389.       Rosewood
  390.       finish {
  391.          phong 1.0
  392.          ambient 0.5
  393.          diffuse 0.7
  394.       }
  395.    }
  396.  
  397.    rotate 30*y
  398.    translate <0.72, -0.24, 0>
  399.    rotate 96.2052*z
  400.    translate <1, 0, -5>
  401. }
  402.  
  403. //   a background glow to add interest
  404. sphere { <0, 0, 0>, 1000
  405.    inverse
  406.  
  407.    pigment {
  408.       gradient y
  409.       color_map {
  410.          [0.0  0.25  color Goldenrod color Goldenrod]
  411.          [0.25 0.46  color Goldenrod color Black]
  412.          [0.46 1.001 color Black color Black]
  413.       }
  414.       scale 2000
  415.       translate -1000*y
  416.    }
  417. }
  418.