home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 1995 January / pcw-0195.iso / polyray / dat / misc / recurse.pi < prev    next >
Text File  |  1994-12-31  |  3KB  |  139 lines

  1. // Generic Polyray input File
  2. // Polyray input file: Alexander Enzmann
  3. //
  4. // Makes picture in a picture by successively rendering the same scene
  5. // and putting the result of each pass into picture frames on the walls
  6. //
  7. start_frame 0
  8. end_frame 5
  9. total_frames 5
  10.  
  11. define complexity 1
  12.  
  13. if (frame < 1) {
  14.    define x_res 80
  15.    define y_res 60
  16.    }
  17. else if (frame < 3) {
  18.    define x_res 160
  19.    define y_res 120
  20.    }
  21. else if (frame < 4) {
  22.    define x_res 320
  23.    define y_res 240
  24.    }
  25. else {
  26.    define x_res 640
  27.    define y_res 480
  28.    }
  29.  
  30. viewpoint {
  31.    from <0,5,-9>
  32.    at <0,2,10>
  33.    up <0,1,0>
  34.    angle 60
  35.    resolution x_res, y_res
  36.    aspect 4/3
  37.    }
  38.  
  39. // Get various surface finishes
  40. include "../colors.inc"
  41. include "../texture.inc"
  42.  
  43. // Support files
  44. include "recurtex.inc"
  45. include "recspot.inc"
  46. include "diff.inc"
  47.  
  48. // Some extra illumination
  49. light 0.4*white, < 7, 9, -9>
  50. light 0.4*white, <-7, 9, -9>
  51.  
  52. // Base for the object
  53. define base_leg
  54. object {
  55.    object { cone <0, 0, 0>, 0.5, <3, 1, 0>, 0.2 }
  56.    + object { sphere <3, 1, 0>, 0.2 }
  57.    + object { cone <3, 1, 0>, 0.2, <4, 2, 0>, 0.1 }
  58.    + object { sphere <4, 2, 0>, 0.1 }
  59.    + object { cone <4, 2, 0>, 0.1, <0, 5, 0>, 0 }
  60.    }
  61.  
  62. object {
  63.      base_leg
  64.    + base_leg { rotate <0,  60, 0> }
  65.    + base_leg { rotate <0, 120, 0> }
  66.    + base_leg { rotate <0, 180, 0> }
  67.    + base_leg { rotate <0, 240, 0> }
  68.    + base_leg { rotate <0, 300, 0> }
  69.    + object { sphere <0, 0, 0>, 0.5 }
  70.    jade
  71.    scale <0.5, 0.5, 0.5>
  72.    translate <0, 0, 1.5>
  73.    }
  74.  
  75. // The room we are in
  76. object { box <-8, 0, -10>, <8, 10, 10> wall_texture }
  77.  
  78. if (frame > 0 && complexity > 0)
  79.    define picture_texture
  80.       texture {
  81.      special surface {
  82.         color planar_imagemap(wall_image, P, 1)
  83.         ambient 0.3
  84.         diffuse 0.7
  85.         }
  86.      rotate <-90, 0, 0>
  87.      }
  88. else
  89.    define picture_texture matte_green
  90.  
  91. define painting
  92. object { box <0, 0, 0>, <1, 1, 0.1> picture_texture }
  93.  
  94. define corner_sphere object { sphere <0, 0, 0>, 0.1 }
  95. define horizontal_cross_rod object { cylinder <0, 0, 0>, <1, 0, 0>, 0.1 }
  96. define vertical_cross_rod object { cylinder <0, 0, 0>, <0, 1, 0>, 0.1 }
  97. define frame
  98. object {
  99.      corner_sphere
  100.    + corner_sphere { translate <1, 0, 0> }
  101.    + corner_sphere { translate <1, 1, 0> }
  102.    + corner_sphere { translate <0, 1, 0> }
  103.    + horizontal_cross_rod
  104.    + horizontal_cross_rod { translate <0, 1, 0> }
  105.    + vertical_cross_rod
  106.    + vertical_cross_rod { translate <1, 0, 0> }
  107.    }
  108.  
  109. define picture object { painting + frame }
  110.  
  111. if (complexity > 0) {
  112.    define frame_texture0 Stone8 { scale <0.3, 0.3, 0.3> }
  113.    define frame_texture1 Stone23 { scale <0.3, 0.3, 0.3> }
  114.    define frame_texture2 Stone24 { scale <0.3, 0.3, 0.3> }
  115.    }
  116. else {
  117.    define frame_texture0 matte_red
  118.    define frame_texture1 matte_green
  119.    define frame_texture2 matte_blue
  120.    }
  121.  
  122. picture {
  123.    rotate <0, 90, 0> translate <0, 0, 1>
  124.    scale <1, 6, 8>
  125.    translate <7.95, 2, 1>
  126.    frame_texture0
  127.    }
  128. picture {
  129.    scale <8, 6, 1>
  130.    translate <-4, 2, 9.95>
  131.    frame_texture1
  132.    }
  133. picture {
  134.    rotate <0,-90, 0>
  135.    scale <1, 6, 8>
  136.    translate <-7.95, 2, 1>
  137.    frame_texture2
  138.    }
  139.