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

  1. // Persistence of Vision RayTracer version 2.0 Scene description file
  2. // File: LAMPPOST.POV
  3. // Description: Old fashioned lamppost on a reflective floor
  4. // Date: 07/24/93
  5. // Author: Anton Raves
  6. //
  7.  
  8. #include "shapes.inc"
  9. #include "colors.inc"
  10.  
  11. camera
  12. {
  13.   location  <0, 95, -475>
  14.   direction 1.4*z
  15.   up        y
  16.   right     1.33*x
  17.   look_at   <0, 95, 0>
  18. }
  19.  
  20. light_source { <190, 679, -250> color White
  21.   area_light <15, 0, 0>, <0, 0, 15>, 9, 9
  22.   adaptive 0
  23.   jitter
  24. }
  25.  
  26. light_source { <100, 179, -160> color White
  27.   area_light <4, 0, 0>, <0, 0, 4>, 9, 9
  28.   adaptive 0
  29.   jitter
  30. }
  31.  
  32. // To make things a little more interesting the light comes from ... a lightbulb
  33. sphere { <100, 179, -160>, 3 texture { pigment { color White } finish { ambient 1 diffuse 1 } }
  34.   no_shadow }
  35.  
  36. // This is the glass2-texture from the TEXTURES.INC-file that I tweaked a little
  37. #declare Glass_tex = 
  38. texture {
  39.   pigment { color red 1 green 1 blue 1 filter .4 }
  40.   finish { ambient .1 diffuse .1 reflection 0.5 refraction 1 ior 1.5 phong 0.3 phong_size 60 }
  41. }
  42.  
  43. // This is the gold-texture Mike Miller used in his SLUG1-scene
  44. #declare Gold_tex =
  45. texture {
  46.   pigment { color red .64 green .51 blue .05 }
  47.   finish { crand .02 ambient .3 diffuse .5 reflection .6 brilliance 8 specular .5 }
  48. }
  49.  
  50. #declare Lamp_tex =
  51. texture {
  52.   pigment { color Gray20 }
  53.   finish { ambient .1 phong .7 }
  54. }
  55.  
  56. #declare Vent_cutout =
  57. box { <-.5, -1.5, -1> <.5, 1.5, 1> }
  58.  
  59. #declare Collar_piece =
  60. union {
  61.   cylinder { .5*z, -.5*z, 1.5 translate <-4, 0, 0> }
  62.   cylinder { .5*z, -.5*z, 1.5 translate <4, 0, 0> }
  63.   box { <-4, -1.5, -.5> <4, 1.5, .5> }
  64. }
  65.  
  66. #declare Collar =
  67. union {
  68.   object { Collar_piece }
  69.   object { Collar_piece rotate -45*y }
  70.   object { Collar_piece rotate -90*y }
  71.   object { Collar_piece rotate -135*y }
  72.   object { Collar_piece rotate -180*y }
  73.   object { Collar_piece rotate -225*y }
  74.   object { Collar_piece rotate -270*y }
  75.   object { Collar_piece rotate -315*y }
  76.   bounded_by { object { UnitBox scale <5.51, 1.51, .51> } }
  77. }
  78.  
  79. #declare Little_feature =
  80. union {
  81.   sphere { <0, 0, 0>, 1 }
  82.   triangle { <0, 2, 0> <0, 0, -1> <1, 0, 0> }
  83.   triangle { <0, 2, 0> <0, 0, -1> <-1, 0, 0> }
  84. }
  85.  
  86. #declare Little =
  87. union {
  88.   object { Little_feature translate <3.5, 0, 0> }
  89.   object { Little_feature translate <3.5, 0, 0> rotate -45*y }
  90.   object { Little_feature translate <3.5, 0, 0> rotate -90*y }
  91.   object { Little_feature translate <3.5, 0, 0> rotate -135*y }
  92.   object { Little_feature translate <3.5, 0, 0> rotate -180*y }
  93.   object { Little_feature translate <3.5, 0, 0> rotate -225*y }
  94.   object { Little_feature translate <3.5, 0, 0> rotate -270*y }
  95.   object { Little_feature translate <3.5, 0, 0> rotate -315*y }
  96.   bounded_by { object { UnitBox scale <5.01, 2.01, 5.01> } }
  97. }
  98.  
  99. #declare support_piece =
  100. difference {
  101.   union {
  102.     cylinder { .5*z, -.5*z 1.5 }
  103.     box { <-1.5, -1.5, -.5> <0, 0, .5> }
  104.   }
  105.   cylinder { z, -z, .5 }
  106. }
  107.  
  108. #declare support =
  109. union {
  110.   difference {
  111.     cylinder { .5*z, -.5*z, 6 }
  112.     cylinder { z, -z, 5 }
  113.     plane { y, 0 inverse }
  114.     plane { x, 0 }
  115.   }
  116.   object { support_piece translate <6.5, 1.5, 0> }
  117. }
  118.  
  119. #declare Lamppost_stem =
  120. union {
  121.   cylinder { y, -y, 7 translate <0, 1, 0> }
  122.   cylinder { .5*y, -.5*y, 6 translate <0, 2.5, 0> }
  123.   cylinder { y, -y, 6.75 translate <0, 4, 0> }
  124.   cone { y, 5, -y, 6.75 translate <0, 6, 0> }
  125.   cylinder { 17*y, -17*y, 4.5 translate <0, 24, 0> }
  126.   cylinder { y, -y, 5 translate <0, 41, 0> }
  127.   cylinder { y, -y, 6.75 translate <0, 43, 0> }
  128.   cylinder { y, -y, 5 translate <0, 45, 0> }
  129.   cylinder { y, -y, 4 translate <0, 47.5, 0> }
  130.   cylinder { 2*y, -2*y, 3.5 translate <0, 51, 0> }
  131.   cylinder { .5*y, -.5*y, 4.5 translate <0, 53.5, 0> }
  132.   cylinder { 53*y, -53*y, 3.5 translate <0, 107, 0> }
  133.   object { Little translate <0, 69.5, 0> }
  134.   object { Collar translate <0, 135.5, 0> }
  135.   texture { Lamp_tex }
  136.   bounded_by { object { UnitBox scale <7.01, 80.51, 7.01> translate <0, 80.5, 0> } }
  137. }
  138.  
  139. #declare Lamppost_head =
  140. union {
  141.   sphere { <0, 0, 0>, .5 texture { Gold_tex } translate <0, 29.5, 0> }
  142.   cone { 1.5*y, 0, -1.5*y, 1 texture { Gold_tex } translate <0, 27.5, 0> } 
  143.   cylinder { .5*y, -.5*y, 2 translate <0, 25.5, 0> }
  144.   cylinder { .5*y, -.5*y, 1 translate <0, 24.5, 0> }
  145.   cone { 1.5*y, 1, -1.5*y, 4 translate <0, 22.5, 0> }
  146.   cylinder { .5*y, -.5*y, 6 translate <0, 20.5, 0> }
  147.   difference {
  148.     cylinder { 2.5*y, -2.5*y, 4 translate <0, 17.5, 0> }
  149.     object { Vent_cutout translate <4, 17.5, 0> }
  150.     object { Vent_cutout translate <4, 17.5, 0> rotate -45*y }
  151.     object { Vent_cutout translate <4, 17.5, 0> rotate -90*y }
  152.     object { Vent_cutout translate <4, 17.5, 0> rotate -135*y }
  153.     object { Vent_cutout translate <4, 17.5, 0> rotate -180*y }
  154.     object { Vent_cutout translate <4, 17.5, 0> rotate -225*y }
  155.     object { Vent_cutout translate <4, 17.5, 0> rotate -270*y }
  156.     object { Vent_cutout translate <4, 17.5, 0> rotate -315*y }
  157.   }
  158.   cylinder { .5*y, -.5*y, 5 texture { Gold_tex } translate <0, 14.5, 0> }
  159.   cylinder { .5*y, -.5*y, 6 texture { Gold_tex } translate <0, 13.5, 0> }
  160.   cone { 3.5*y, 6, -3.5*y, 14 open translate <0, 9.5, 0> }
  161.   difference {
  162.     cylinder { y, -y, 16 translate <0, 5, 0> }
  163.     cylinder { 2*y, -2*y, 12 translate <0, 5, 0> }
  164.   }
  165.   cone { 11.5*y, 14, -11.5*y, 10 texture { Glass_tex } translate <0, -7.5, 0> }
  166.   object {
  167.     difference {
  168.       cylinder { y, -y, 10 translate <0, -20, 0> }
  169.       cylinder { 2*y, -2*y, 8 translate <0, -20, 0> }
  170.     }
  171.   no_shadow
  172.   }
  173.   box { <-9, -21, -1> <9, -19, 1> no_shadow }
  174.   box { <-1, -21, -9> <1, -19, 9> no_shadow }
  175.   object { support translate <3.5, -24, 0> no_shadow }
  176.   object { support translate <3.5, -24, 0> rotate 90*y no_shadow }
  177.   object { support translate <3.5, -24, 0> rotate 180*y no_shadow }
  178.   object { support translate <3.5, -24, 0> rotate 270*y no_shadow }
  179. // if the light is to be turned off then uncomment the next line.
  180. //  sphere { <0, 0, 0>, 3 texture { pigment { color White } finish { ambient 1 diffuse 1 } } }
  181.   cylinder { 4.5*y, -4.5*y, 1.5 texture { Gold_tex } translate <0, 9.5, 0> }
  182.   texture { Lamp_tex }
  183.   bounded_by { object { UnitBox scale <16.01, 60.01, 16.01> } }
  184. }
  185.  
  186. #declare Lamppost =
  187. union {
  188.   object { Lamppost_stem }
  189.   object { Lamppost_head translate <0, 189, 0> }
  190. }
  191.  
  192. object { Lamppost translate <100, -10, -160> }
  193. plane { y, -10 texture { pigment { color Gray30 } finish { ambient .2 reflection .4 } } }
  194.