home *** CD-ROM | disk | FTP | other *** search
/ Mega A/V / mega_av.zip / mega_av / GRAPHUTL / POVSCN.ZIP / LEVEL2.ZIP / PAWNS.POV < prev    next >
Text File  |  1992-07-03  |  12KB  |  416 lines

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