home *** CD-ROM | disk | FTP | other *** search
/ Mega A/V / mega_av.zip / mega_av / GRAPHUTL / POVSCN.ZIP / LEVEL3.ZIP / OAK2.POV < prev    next >
Text File  |  1992-07-18  |  6KB  |  238 lines

  1. // Persistence Of Vision Raytracer version 1.0 sample file.
  2.  
  3. // Scene file by Dan Farmer    November, 1991
  4. //
  5. // note: To properly process on a pc, the resultant .gif file should
  6. // be modified with piclab: brighten 20 contrast 45, gamma 0.6, transform
  7. //
  8. // Many of the declarations here are not the same as in the #include files!
  9. //=========================================================================
  10. #include "colors.inc"
  11. #include "shapes.inc"
  12. #include "textures.inc"
  13.  
  14. #declare BlueViolet = color red 0.38 green 0.39 blue 0.58 // tce designed color
  15. #declare DarkPurple     = color red 0.53 green 0.12 blue 0.47
  16. #declare CoolCopper     = color red 0.85 green 0.53 blue 0.10
  17. #declare LightWood      = color red 0.91 green 0.76 blue 0.65
  18. #declare MediumWood     = color red 0.65 green 0.50 blue 0.39
  19. #declare DarkWood       = color red 0.52 green 0.37 blue 0.26
  20. #declare SemiSweetChoc  = color red 0.42 green 0.26 blue 0.15
  21. #declare BakersChoc     = color red 0.36 green 0.20 blue 0.09
  22. #declare VeryDarkBrown  = color red 0.35 green 0.00 blue 0.14
  23.  
  24. // Shiny creates a small, tight highlight on the object {'s surface
  25. #declare Shiny = texture {
  26.    specular 1.0  roughness 0.001
  27. }
  28.  
  29. // You need to specify a color when Metal is used
  30. #declare Metal = texture {
  31.    metallic
  32.    ambient 0.085   diffuse 0.6
  33.    brilliance 6.0
  34.    reflection 0.25
  35.    phong 0.75  phong_size 20
  36. }
  37.  
  38. #declare Copper_Texture = texture {
  39.    Metal
  40.    colour CoolCopper
  41. }
  42.  
  43. #declare Brass_Texture = texture {
  44.    Metal
  45.    colour Brass
  46. }
  47.  
  48. // a unit sphere { is one with radius of 1.0.
  49. // This shape { is equivilent in size to a unit sphere {
  50. // and will scale evenly in all directions.
  51. #declare Disk_X = intersection {       /* Capped cylinder, Length in x axis */
  52.    quadric { Cylinder_X }
  53.    plane { <1.0 0.0 0.0> -1.0 inverse }
  54.    plane { <1.0 0.0 0.0> 1.0 }
  55. }
  56.  
  57. #declare Disk_Y = intersection {       /* Capped cylinder, Length in y axis */
  58.    quadric { Cylinder_Y }
  59.    plane { <0.0 1.0 0.0> -1.0 inverse }
  60.    plane { <0.0 1.0 0.0> 1.0 }
  61. }
  62.  
  63. #declare Disk_Z = intersection {       /* Capped cylinder, Length in z axis */
  64.    quadric { Cylinder_Z }
  65.    plane { <0.0 0.0 1.0> -1.0 inverse }
  66.    plane { <0.0 0.0 1.0> 1.0 }
  67. }
  68.  
  69. #declare Torus =
  70. quartic {
  71.    <    1.000000 0.000000 0.000000 0.000000 2.000000
  72.    0.000000 0.000000 2.000000 0.000000 -2.125000
  73.    0.000000 0.000000 0.000000 0.000000 0.000000
  74.    0.000000 0.000000 0.000000 0.000000 0.000000
  75.    1.000000 0.000000 0.000000 2.000000 0.000000
  76.    1.875000 0.000000 0.000000 0.000000 0.000000
  77.    1.000000 0.000000 -2.125000 0.000000 0.878906 >
  78. }
  79.  
  80. #declare LeftTopElbow = object {
  81.    quartic { Torus rotate <90 0 0> }
  82.    clipped_by {
  83.       plane { <1  0 0> 0 }
  84.       plane { <0 -1 0> 0 }
  85.    }
  86.    color Red
  87.    texture { Copper_Texture }
  88. }
  89. #declare RightTopElbow = object {
  90.    quartic { Torus rotate <90 0 0> }
  91.    clipped_by {
  92.       plane { <-1 0 0> 0 }
  93.       plane { <0 -1 0> 0 }
  94.    }
  95.    color Red
  96.    texture { Copper_Texture }
  97. }
  98.  
  99. #declare XTube = object {
  100.    quadric { Cylinder_X }
  101.    clipped_by {
  102.       plane { <1  0 0> -1 inverse }
  103.       plane { <1 0 0>   1 }
  104.    }
  105.    color Red
  106.    texture { Copper_Texture }
  107. }
  108.  
  109. #declare YTube = object {
  110.    quadric { Cylinder_Y }
  111.    clipped_by {
  112.       plane { <0 1 0> -1 inverse }
  113.       plane { <0 1 0>  1 }
  114.    }
  115.    color Red
  116.    texture { Copper_Texture }
  117. }
  118.  
  119. camera {
  120.    location <20 15 -35>
  121.    direction <0 0 1.2>
  122.    up  <0 1 0>
  123.    right <1.33333 0 0>
  124.    look_at <1.5 5 0>
  125. }
  126.  
  127. #declare Light = color red 0.75 green 0.75 blue 0.75
  128.  
  129. object {   /* light */
  130.    light_source { <-30 500 -1.0>
  131.       colour Light
  132.    }
  133. }
  134.  
  135. object {   /* light */
  136.    light_source { <-5 30 -50>
  137.       colour Light
  138.    }
  139. }
  140.  
  141.  
  142. object {   /* floor */
  143.    plane { <0 1 0> -6 }
  144.    color White
  145.    texture { granite
  146.       reflection 0.15
  147.       ambient 0.075  diffuse 0.5
  148.       color_map { [0.0 1.01 color BlueViolet color DarkPurple] }
  149.    }
  150. }
  151.  
  152. #declare Oak =  texture {
  153.    wood
  154.    turbulence 0.05
  155.    colour_map {
  156.       [0.00 0.10 color SemiSweetChoc color SemiSweetChoc]
  157.       [0.10 0.90 color SemiSweetChoc color DarkWood]
  158.       [0.90 1.01  color DarkWood  color DarkWood ]
  159.    }
  160. }
  161.  
  162. #declare WoodSphere = object {
  163.    sphere { <0 0 0> 10 }
  164.    colour White
  165.  
  166.    texture {
  167.       Shiny
  168.       reflection 0.12
  169.       Oak
  170.       scale <0.5 0.5 1.0>
  171.       translate <0.25 0.05 0.5>
  172.       rotate <0 0 0.5>
  173.       ambient 0.075 diffuse 0.7
  174.    }
  175.    texture {
  176.       Shiny
  177.       color Clear
  178.       ambient 0.075 diffuse 0.7
  179.    }
  180. }
  181.  
  182. #declare Chamfer = union {
  183.    intersection { Disk_X scale <12.5 0.65 0.65> translate <0 0 -12> }
  184.    intersection { Disk_X scale <12.5 0.65 0.65> translate <0 0 12>  }
  185.    intersection { Disk_Z scale <0.65 0.65 12.5> translate <-12 0 0> }
  186.    intersection { Disk_Z scale <0.65 0.65 12.5>  translate <12 0 0> }
  187. }
  188.  
  189. #declare BrassBall = object {
  190.    sphere { <0 0 0> 1.5 }
  191.    color Cyan
  192.    texture { Brass_Texture }
  193. }
  194.  
  195. #declare Railing = composite {
  196.    object { LeftTopElbow  translate <-8 0 0> }
  197.    object { RightTopElbow translate <+8 0 0> }
  198.    object { XTube  scale <8.0 0.25 0.25> translate <0 1 0>  }
  199.    object { YTube  scale <0.25 2 0.25>    translate <+9 -2 0> }
  200.    object { YTube  scale <0.25 2 0.25>    translate <-9 -2 0> }
  201. }
  202.  
  203. #declare Base =  object {
  204.    difference {
  205.       intersection { Cube scale <12 2 12> }
  206.       union { Chamfer translate <0 2 0> }
  207.    }
  208.    color Red
  209.  
  210.    texture {
  211.       Shiny
  212.       reflection 0.15
  213.       Oak scale <0.45 0.45 0.7>
  214.       rotate <0.20 0.10 0.05>
  215.       translate <0 -1 0>
  216.       ambient 0.075 diffuse 0.7
  217.    }
  218.    texture {
  219.       Shiny
  220.       color Clear
  221.       ambient 0.075 diffuse 0.7
  222.    }
  223.    translate <0 -1 0>
  224. }
  225.  
  226. composite {
  227.    object { WoodSphere  translate <0 9.5 0> }
  228.    object { Base }
  229.    object { BrassBall translate < 10 -4.5  10> }
  230.    object { BrassBall translate < 10 -4.5 -10> }
  231.    object { BrassBall translate <-10 -4.5  10> }
  232.    object { BrassBall translate <-10 -4.5 -10> }
  233.    composite { Railing translate <0 3  10> }
  234.    composite { Railing translate <0 3 -10> }
  235.    composite { Railing rotate <0 90 0> translate < 10 3 0> }
  236.    composite { Railing rotate <0 90 0> translate <-10 3 0> }
  237. }
  238.