home *** CD-ROM | disk | FTP | other *** search
/ Ray Tracing Box / RAY_CD.mdf / raytrace / _pov_dat / ttbjug / ttbjug.pov < prev   
Text File  |  1994-01-24  |  14KB  |  312 lines

  1. // TTBJUG for POVRAY GROUP IMAGE PROJECT
  2. // Author:  Truman Brown CIS 71477,221
  3. // This file is released to the Public Domain
  4.  
  5. // Item:    Simple wooden jug in a wooden stand
  6. // Extents: stand -
  7. //             MINX = -26.5
  8. //             MAXX =  26.5
  9. //             MINY =   0.0
  10. //             MAXY =  59.0
  11. //             MINZ = -26.5
  12. //             MAXZ =  26.5
  13. //          vase -
  14. //             MINX = -12.0
  15. //             MAXX =  12.0
  16. //             MINY =   0.0
  17. //             MAXY =  43.5
  18. //             MINZ = -12.0
  19. //             MAXZ =  12.0
  20.  
  21. #include "colors.inc"
  22.  
  23. camera {
  24.    location <-70, 36, -116>
  25.    direction <0, 0, 1.453>
  26.    up        y
  27.    sky       <0.1, 0.9, 0>
  28.    right     <4/3, 0, 0>
  29.    look_at  <10, 24, 0>
  30. }
  31.  
  32. light_source { <-1000,  1000,  -1000> color White }
  33. light_source { < 1000,  1000,  -1000> color White }
  34.  
  35. #declare ttb_br1 = 1.4
  36. #declare ttb_br0 = 1.1
  37.  
  38. #declare ttb_wood_texture =
  39.    texture {
  40.       pigment {
  41.          wood
  42.          turbulence 0.23
  43.          octaves 1
  44.          color_map {
  45.             [0.000 0.448 color red 0.220 * ttb_br0 green 0.141 * ttb_br0 blue ttb_br0 * 0.000
  46.                          color red 0.376 * ttb_br0 green 0.278 * ttb_br0 blue ttb_br0 * 0.204]
  47.             [0.448 0.578 color red 0.376 * ttb_br0 green 0.278 * ttb_br0 blue ttb_br0 * 0.204
  48.                          color red 0.451 * ttb_br0 green 0.380 * ttb_br0 blue ttb_br0 * 0.369]
  49.             [0.578 0.724 color red 0.451 * ttb_br0 green 0.380 * ttb_br0 blue ttb_br0 * 0.369
  50.                          color red 0.259 * ttb_br0 green 0.180 * ttb_br0 blue ttb_br0 * 0.078]
  51.             [0.724 0.879 color red 0.259 * ttb_br0 green 0.180 * ttb_br0 blue ttb_br0 * 0.078
  52.                          color red 0.451 * ttb_br0 green 0.380 * ttb_br0 blue ttb_br0 * 0.369]
  53.             [0.879 0.922 color red 0.451 * ttb_br0 green 0.380 * ttb_br0 blue ttb_br0 * 0.369
  54.                          color red 0.424 * ttb_br0 green 0.325 * ttb_br0 blue ttb_br0 * 0.196]
  55.             [0.922 0.983 color red 0.424 * ttb_br0 green 0.325 * ttb_br0 blue ttb_br0 * 0.196
  56.                          color red 0.212 * ttb_br0 green 0.149 * ttb_br0 blue ttb_br0 * 0.075]
  57.             [0.983 1.001 color red 0.212 * ttb_br0 green 0.149 * ttb_br0 blue ttb_br0 * 0.075
  58.                          color red 0.220 * ttb_br0 green 0.141 * ttb_br0 blue ttb_br0 * 0.000]
  59.          }
  60.       }
  61.       finish {
  62.          ambient 0.3
  63.          diffuse 0.7
  64.          specular 1.0
  65.          roughness 0.001
  66.          reflection 0.08
  67.       }
  68.    }
  69.  
  70.  
  71. #declare ttb_wood_texture2 =
  72.    texture {
  73.       pigment {
  74.          wood
  75.          octaves 2
  76.          turbulence 0.32
  77.          color_map {
  78.             [0.000 0.448 color red 0.220*ttb_br1 green 0.141*ttb_br1 blue 0.000*ttb_br1
  79.                          color red 0.376*ttb_br1 green 0.278*ttb_br1 blue 0.204*ttb_br1]
  80.             [0.448 0.578 color red 0.376*ttb_br1 green 0.278*ttb_br1 blue 0.204*ttb_br1
  81.                          color red 0.451*ttb_br1 green 0.380*ttb_br1 blue 0.369*ttb_br1]
  82.             [0.578 0.724 color red 0.451*ttb_br1 green 0.380*ttb_br1 blue 0.369*ttb_br1
  83.                          color red 0.259*ttb_br1 green 0.180*ttb_br1 blue 0.078*ttb_br1]
  84.             [0.724 0.879 color red 0.259*ttb_br1 green 0.180*ttb_br1 blue 0.078*ttb_br1
  85.                          color red 0.451*ttb_br1 green 0.380*ttb_br1 blue 0.369*ttb_br1]
  86.             [0.879 0.922 color red 0.451*ttb_br1 green 0.380*ttb_br1 blue 0.369*ttb_br1
  87.                          color red 0.424*ttb_br1 green 0.325*ttb_br1 blue 0.196*ttb_br1]
  88.             [0.922 0.983 color red 0.424*ttb_br1 green 0.325*ttb_br1 blue 0.196*ttb_br1
  89.                          color red 0.212*ttb_br1 green 0.149*ttb_br1 blue 0.075*ttb_br1]
  90.             [0.983 1.001 color red 0.212*ttb_br1 green 0.149*ttb_br1 blue 0.075*ttb_br1
  91.                          color red 0.220*ttb_br1 green 0.141*ttb_br1 blue 0.000*ttb_br1]
  92.          }
  93.       }
  94.       finish {
  95.          ambient 0.35
  96.          diffuse 0.7
  97.          phong 1.0
  98.          phong_size 70
  99.          reflection 0.08
  100.       }
  101.    }
  102.  
  103. #declare ttb_brt1 = 0.85
  104.  
  105. #declare silver_texture =
  106.    texture {
  107.       pigment {
  108.          color rgbf <0.83*ttb_brt1, 0.83*ttb_brt1, 0.94*ttb_brt1, 0.9>
  109.       }
  110.       finish {
  111.          ambient 0.4
  112.          diffuse 0.6
  113.          specular 1.0
  114.          roughness 0.001
  115.          phong 1.0
  116.          phong_size 35
  117.          refraction 1.0
  118.          ior 1.2
  119.          brilliance 0.5
  120.       }
  121.    }
  122.  
  123. #declare stand =
  124.    object {
  125.       union {
  126.          union {
  127.             union {           // stand level 1; y = 0 to 4
  128.                difference {
  129.                   box { <-25, 0, -25>, <25, 4, 25> }
  130.                   cone { <-30, 4, -25>, 2, <30, 4, -25>, 2 }
  131.                   cone { <-30, 4,  25>, 2, <30, 4,  25>, 2 }
  132.                   cone { <-25, 4, -30>, 2, <-25, 4, 30>, 2 }
  133.                   cone { < 25, 4, -30>, 2, < 25, 4, 30>, 2 }
  134.                }
  135.                sphere { <-25, 1, -25>, 1 }
  136.                sphere { <-25, 1,  25>, 1 }
  137.                sphere { < 25, 1, -25>, 1 }
  138.                sphere { < 25, 1,  25>, 1 }
  139.                cone   { <-25, 1, -25>, 1, <-25, 1,  25>, 1 }
  140.                cone   { < 25, 1, -25>, 1, < 25, 1,  25>, 1 }
  141.                cone   { <-25, 1, -25>, 1, < 25, 1, -25>, 1 }
  142.                cone   { <-25, 1,  25>, 1, < 25, 1,  25>, 1 }
  143.                bounded_by { box { <-26, 0, -26>, <26, 4, 26> } }
  144.             }
  145.             union {           // stand level 2; y = 4 to 11.25
  146.                box { <-21, 4, -21>, <-17,  6, -17> }
  147.                box { <-21, 4,  17>, <-17,  6,  21> }
  148.                box { < 17, 4, -21>, < 21,  6, -17> }
  149.                box { < 17, 4,  17>, < 21,  6,  21> }
  150.                difference {
  151.                   box { <-21, 6, -21>, < 21, 10, 21> }
  152.                   cone { <-30, 10, -21>, 2, < 30, 10, -21>, 2 }
  153.                   cone { <-30, 10,  21>, 2, < 30, 10,  21>, 2 }
  154.                   cone { <-21, 10, -30>, 2, <-21, 10,  30>, 2 }
  155.                   cone { < 21, 10, -30>, 2, < 21, 10,  30>, 2 }
  156.                }
  157.                torus { 2.5, 1 sturm scale <1, 0.5, 1> translate < 15, 10,  15> bounded_by { box { < 11, 8.75,  11>, < 19, 11.25,  19> } } }
  158.                torus { 2.5, 1 sturm scale <1, 0.5, 1> translate < 15, 10, -15> bounded_by { box { < 11, 8.75, -19>, < 21, 11.25, -11> } } }
  159.                torus { 2.5, 1 sturm scale <1, 0.5, 1> translate <-15, 10,  15> bounded_by { box { <-19, 8.75,  11>, <-11, 11.25,  19> } } }
  160.                torus { 2.5, 1 sturm scale <1, 0.5, 1> translate <-15, 10, -15> bounded_by { box { <-19, 8.75, -19>, <-11, 11.25, -11> } } }
  161.                bounded_by { box { <-21, 4, -21>, <21, 11.25, 21> } }
  162.             }
  163.             difference {      // stand level 3; y = 10 to 12
  164.                box   { <-15, 10, -15>, <15, 12, 15> }
  165.                cone  { <-15, 9, -15>, 4, <-15, 13, -15>, 4 }
  166.                cone  { <-15, 9,  15>, 4, <-15, 13,  15>, 4 }
  167.                cone  { < 15, 9, -15>, 4, < 15, 13, -15>, 4 }
  168.                cone  { < 15, 9,  15>, 4, < 15, 13,  15>, 4 }
  169.                torus { 4, 2 sturm translate <-15, 12, -15> }
  170.                torus { 4, 2 sturm translate <-15, 12,  15> }
  171.                torus { 4, 2 sturm translate < 15, 12, -15> }
  172.                torus { 4, 2 sturm translate < 15, 12,  15> }
  173.                cone  { <-16, 12, -15>, 2, < 16, 12, -15>, 2 }
  174.                cone  { <-16, 12,  15>, 2, < 16, 12,  15>, 2 }
  175.                cone  { <-15, 12, -16>, 2, <-15, 12,  16>, 2 }
  176.                cone  { < 15, 12, -16>, 2, < 15, 12,  16>, 2 }
  177.                bounded_by {
  178.                   box   { <-15, 10, -15>, <15, 12, 15> }
  179.                }
  180.             }
  181.             bounded_by {
  182.                box { <-26, 0, -26>, <26, 12, 26> }
  183.             }
  184.             texture { ttb_wood_texture scale <850, 1.65, 125> }
  185.          }
  186.          union {                 // stand level 4:
  187.             union {              // (stack); y = 12 to 16
  188.                torus { 10, 0.5 sturm translate <0,12.5,0> bounded_by { box { <-10.5, 12, -10.5>, <10.5, 13, 10.5> } } }
  189.                torus { 10, 0.5 sturm translate <0,13.5,0> bounded_by { box { <-10.5, 13, -10.5>, <10.5, 14, 10.5> } } }
  190.                torus { 10, 0.5 sturm translate <0,14.5,0> bounded_by { box { <-10.5, 14, -10.5>, <10.5, 15, 10.5> } } }
  191.                torus { 10, 0.5 sturm translate <0,15.5,0> bounded_by { box { <-10.5, 15, -10.5>, <10.5, 16, 10.5> } } }
  192.                cone  { <0, 12, 0>, 10, <0, 16, 0>, 10 }
  193.                bounded_by { box { <-11, 12, -11>, <11, 16, 11> } }
  194.                texture { ttb_wood_texture scale <180, 0.2, 555> translate <0, 12, 0> }
  195.             }
  196.             union {              // (poles); y= 10 to 45
  197.                cone { < 15, 10,  15>, 1.5, < 15, 55,  15>, 1.5 }
  198.                cone { < 15, 10, -15>, 1.5, < 15, 55, -15>, 1.5 }
  199.                cone { <-15, 10,  15>, 1.5, <-15, 55,  15>, 1.5 }
  200.                cone { <-15, 10, -15>, 1.5, <-15, 55, -15>, 1.5 }
  201.                bounded_by { box { <-16.5, 10, -16.5>, <16.5, 55, 16.5> } }
  202.                texture { silver_texture }
  203.             }
  204.          }
  205.          union {           // stand level 1; y = 0 to 4
  206.             difference {
  207.                box { <-25, 0, -25>, <25, 4, 25> }
  208.                cone { <-30, 4, -25>, 2, <30, 4, -25>, 2 }
  209.                cone { <-30, 4,  25>, 2, <30, 4,  25>, 2 }
  210.                cone { <-25, 4, -30>, 2, <-25, 4, 30>, 2 }
  211.                cone { < 25, 4, -30>, 2, < 25, 4, 30>, 2 }
  212.             }
  213.             sphere { <-25, 1, -25>, 1 }
  214.             sphere { <-25, 1,  25>, 1 }
  215.             sphere { < 25, 1, -25>, 1 }
  216.             sphere { < 25, 1,  25>, 1 }
  217.             cone   { <-25, 1, -25>, 1, <-25, 1,  25>, 1 }
  218.             cone   { < 25, 1, -25>, 1, < 25, 1,  25>, 1 }
  219.             cone   { <-25, 1, -25>, 1, < 25, 1, -25>, 1 }
  220.             cone   { <-25, 1,  25>, 1, < 25, 1,  25>, 1 }
  221.             texture { ttb_wood_texture scale <200, 3, 170> translate <280,-34,0> scale 1.5 }
  222.             bounded_by { box { <-26, 0, -26>, <26, 4, 26> } }
  223.             translate <0, 55, 0>
  224.          }
  225.          bounded_by { box { <-26.5, 0, -26.5>, <26.5, 59, 26.5> } }
  226.       }
  227.    }
  228.  
  229. #declare vase =
  230.    union {
  231.       // a [radius on x-axis]            = 12
  232.       // b [radius on y-axis]            =  8
  233.       // c [radius on z-axis]            = 12
  234.       // desired radius at intersection  =  8
  235.       // y value of intersection point   =  5.962847939999439
  236.       // desired tangent angle           = 30.806981117105178
  237.       intersection {
  238.          difference {
  239.             sphere { <0,0,0>, 1 scale <12, 8, 12> }
  240.             sphere { <0,0,0>, 1 scale <12, 8, 12> scale 0.95 }
  241.          }
  242.          plane { <0,1,0>, 5.962847939999439 }
  243.       }
  244.       // 1st radius          =  8.000000000000000
  245.       //     tangent angle   = 30.806981117105174
  246.       // Length              =  8.198915917499228
  247.       // A value             =  3.000000000000000
  248.       // B value             =  1.658312395177700
  249.       // C value             =  3.000000000000000
  250.       intersection {
  251.          difference {
  252.             quadric {
  253.                <0.111111111111111, -0.363636363636364, 0.111111111111111>,
  254.                <0.000000000000000,  0.000000000000000, 0.000000000000000>,
  255.                <0.000000000000000,  0.000000000000000, 0.000000000000000>,
  256.                -1.0
  257.             }
  258.             quadric {
  259.                <0.111111111111111, -0.363636363636364, 0.111111111111111>,
  260.                <0.000000000000000,  0.000000000000000, 0.000000000000000>,
  261.                <0.000000000000000,  0.000000000000000, 0.000000000000000>,
  262.                -1.0
  263.                scale 0.95
  264.             }
  265.          }
  266.          plane { <0.0, 1.0, 0.0>, 0  }
  267.          plane { <0.0,-1.0, 0.0>, 4.099457958749614 }
  268.          translate <0.0, 5.962847939999439+4.099457958749614, 0.0>
  269.       }
  270.       // 1st radius          =  5.000000000000000
  271.       //     tangent angle   = 66.893673141728442
  272.       // Length              = 15.000000000000000
  273.       // A value             =  3.000000000000000
  274.       // B value             =  5.625000000000003
  275.       // C value             =  3.000000000000000
  276.       intersection {
  277.          difference {
  278.             quadric {
  279.                <0.111111111111, -0.031604938271, 0.1111111111111>,
  280.                <0.000000000000,  0.000000000000, 0.0000000000000>,
  281.                <0.000000000000,  0.000000000000, 0.0000000000000>,
  282.                -1.0
  283.             }
  284.             quadric {
  285.                <0.111111111111, -0.031604938271, 0.1111111111111>,
  286.                <0.000000000000,  0.000000000000, 0.0000000000000>,
  287.                <0.000000000000,  0.000000000000, 0.0000000000000>,
  288.                -1.0
  289.                scale 0.95
  290.             }
  291.          }
  292.          plane { <0.0,-1.0, 0.0>, 0 }
  293.          plane { <0.0, 1.0, 0.0>, 7.5 }
  294.          translate <0.0, 5.962847939999439+4.099457958749614, 0.0>
  295.       }
  296.       torus { (5-1.83899), 1.83899 sturm translate <0.0, 7.5 + 5.962847939999439+4.099457958749614, 0.0> }
  297.       // a [radius on x-axis]            =  2.000000000000000
  298.       // b [radius on y-axis]            =  2.003995899272906
  299.       // c [radius on z-axis]            =  2.000000000000000
  300.       // desired radius at intersection  =  1.838990000000000
  301.       // y value of intersection point   =  0.787774190800730
  302.       // desired tangent angle           = 66.893673141728442
  303.       texture { ttb_wood_texture2 scale <40, 100, 30> scale 0.75 rotate <0, 60, 0> }
  304.       translate <0, 24, 0>
  305.       bounded_by { box { <-12, 16, -12>, <12, 24+7.5+6+6, 12> } }
  306.    }
  307.  
  308. object { stand }
  309. object { vase }
  310.  
  311. background { color rgb <0.1*2, 0.1*2, 0.3*2> }
  312.