home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 16 / CD_ASCQ_16_0994.iso / news / 4613 / jet.rrt < prev    next >
Text File  |  1994-06-11  |  15KB  |  679 lines

  1. // Fontaine
  2.  
  3. #include "colors.inc"
  4. #include "shapes.inc"
  5. #include "textures.inc"
  6.  
  7. camera {
  8.   location <10 17 -10>
  9.   point_at <0 0.2 0>
  10.   angle 32
  11. }
  12.  
  13. environment {
  14.    clouds
  15.    color_map {
  16.      [0 1 color Blue color White ]
  17.    }
  18. }
  19. object {
  20.   light_source { <-13 17 3> intensity 15 color White }
  21. }
  22.  
  23. object {
  24.   light_source { <10 3 -10> intensity 12 color White }
  25. }
  26.  
  27. object {
  28.   light_source { <3 17 3> intensity 10 color White }
  29. }
  30.  
  31. /*object {
  32.   light_source { <-8 14 6> intensity 10 color White }
  33. }*/
  34.  
  35. #declare Wood1 = texture {
  36.   wood
  37.   turbulence 0.4
  38.   octaves 2
  39.   scale <0.1 0.1 0.4>
  40.   color_map {
  41.     [0.00 0.10 color red 0.60 green 0.30 blue 0.18
  42.                color red 0.60 green 0.30 blue 0.18]
  43.     [0.10 0.90 color red 0.60 green 0.30 blue 0.18
  44.                color red 0.30 green 0.15 blue 0.09]
  45.     [0.90 1.00 color red 0.30 green 0.15 blue 0.09
  46.                color red 0.30 green 0.15 blue 0.09]
  47.   }
  48. }
  49.  
  50. #declare Recule = 5
  51.  
  52. #declare Lobe = union {
  53.   intersection {
  54.     QCone_X
  55.     slab { <1 0 0> 0 1 }
  56.     scale <1 0.122790698 0.122790698>
  57.   }
  58.   intersection {
  59.     sphere { <1.015077555 0 0> 0.1237129262 }
  60.     plane { <-1 0 0> 1 }
  61.   }
  62.   rotate <0 0 -20>
  63. }    
  64.  
  65. #declare Base = bound {
  66.   object { Lobe rotate <0   0 0> }
  67.   object { Lobe rotate <0  12 0> }
  68.   object { Lobe rotate <0  24 0> }
  69.   object { Lobe rotate <0  36 0> }
  70.   object { Lobe rotate <0  48 0> }
  71.   object { Lobe rotate <0  60 0> }
  72.   object { Lobe rotate <0  72 0> }
  73.   object { Lobe rotate <0  84 0> }
  74.   object { Lobe rotate <0  96 0> }
  75.   object { Lobe rotate <0 108 0> }
  76.   object { Lobe rotate <0 120 0> }
  77.   object { Lobe rotate <0 132 0> }
  78.   object { Lobe rotate <0 144 0> }
  79.   object { Lobe rotate <0 156 0> }
  80.   object { Lobe rotate <0 168 0> }
  81.   object { Lobe rotate <0 180 0> }
  82.   object { Lobe rotate <0 192 0> }
  83.   object { Lobe rotate <0 204 0> }
  84.   object { Lobe rotate <0 216 0> }
  85.   object { Lobe rotate <0 228 0> }
  86.   object { Lobe rotate <0 240 0> }
  87.   object { Lobe rotate <0 252 0> }
  88.   object { Lobe rotate <0 264 0> }
  89.   object { Lobe rotate <0 276 0> }
  90.   object { Lobe rotate <0 288 0> }
  91.   object { Lobe rotate <0 300 0> }
  92.   object { Lobe rotate <0 312 0> }
  93.   object { Lobe rotate <0 324 0> }
  94.   object { Lobe rotate <0 336 0> }
  95.   object { Lobe rotate <0 348 0> }
  96. }
  97. by box { <-1.1 -0.47 -1.1> <1.1 0 1.1> }
  98.  
  99. #declare Milieu1 = bound {
  100.     object { 
  101.       intersection { 
  102.         Hyperboloid_Y 
  103.         slab { <0 1 0> -3.1 1.118 }
  104.         scale <0.6 1.104 0.6>
  105.       }
  106.       translate <0 2.4 0>
  107.     }
  108.   }
  109.   by box { <-2 -0.8 -2> <2 3.6 2> }
  110.  
  111. #declare Bosse = object {
  112.   Ellipsoid
  113.   scale <0.8 0.8 0.2>
  114.   translate <0 4.634272 0> 
  115. }
  116.  
  117. #declare Milieu2 = bound {
  118.   object {
  119.     torus { <0 0 0> <0 0 1> 0.9 0.1 }
  120.     rotate <90 0 0>
  121.     translate <0 3.734272 0> 
  122.   }
  123.   object { 
  124.     intersection { 
  125.       Hyperboloid_Y 
  126.       slab { <0 1 0> -1.118 1.118 }
  127.       scale <0.6 0.7155635063 0.6>
  128.     }
  129.     translate <0 4.634272 0>
  130.   }
  131.   object { Bosse }
  132.   object { Bosse rotate <0  15 0> }
  133.   object { Bosse rotate <0  30 0> }
  134.   object { Bosse rotate <0  45 0> }
  135.   object { Bosse rotate <0  60 0> }
  136.   object { Bosse rotate <0  75 0> }
  137.   object { Bosse rotate <0  90 0> }
  138.   object { Bosse rotate <0 105 0> }
  139.   object { Bosse rotate <0 120 0> }
  140.   object { Bosse rotate <0 135 0> }
  141.   object { Bosse rotate <0 150 0> }
  142.   object { Bosse rotate <0 165 0> }
  143.   object {
  144.     torus { <0 0 0> <0 0 1> 0.9 0.1 }
  145.     rotate <90 0 0>
  146.     translate <0 5.534272 0> 
  147.   }
  148.   object {
  149.     intersection {
  150.       Cylinder_Y
  151.       slab { <0 1 0> -0.3 0.3 }
  152.     }
  153.     scale <0.9 1 0.9>
  154.     translate <0 5.834272 0> 
  155.   }
  156. }
  157. by box { <-1 3.6 -1> <1 6.2 1> }
  158.  
  159. #declare Pied = object {
  160.   composite {
  161.     object { Base scale <4.3 4.3 4.3> }
  162.     object { Milieu1 }
  163.     object { Milieu2 }
  164.   }
  165.   texture {
  166.     White_Marble
  167.     scale <0.5 0.5 0.5>
  168.     ambient 0.2
  169.     diffuse 0.7
  170.     phong 0.25
  171.     phong_size 90
  172.   }
  173. }
  174.  
  175. #declare CuvetteA =
  176.   union {  
  177.     intersection { 
  178.       Paraboloid_Y 
  179.       plane { <0 1 0> 36 }
  180.       scale <1 0.06388888889 1>
  181.     }
  182.     torus { <0 0 0> <0 0 1> 5.90873527 0.15 rotate <90 0 0> translate <0 2.419040954 0> }
  183.   }
  184.  
  185. #declare CuvetteElemB = intersection { 
  186.   Paraboloid_Y 
  187.   plane { <0 1 0> 40 }
  188.   scale <1 0.06388888889 0.2>
  189. }
  190.  
  191. #declare CuvetteB =
  192.   union {
  193.     union {
  194.       union {
  195.         union {
  196.           object { CuvetteElemB }
  197.           object { CuvetteElemB rotate <0 11.25 0> }
  198.         }
  199.         union {
  200.           object { CuvetteElemB rotate <0 22.50 0>}
  201.           object { CuvetteElemB rotate <0 33.75 0> }
  202.         }
  203.       }
  204.       union {
  205.         union {
  206.           object { CuvetteElemB rotate <0 45 0>}
  207.           object { CuvetteElemB rotate <0 56.25 0> }
  208.         }
  209.         union {
  210.           object { CuvetteElemB rotate <0 67.50 0>}
  211.           object { CuvetteElemB rotate <0 78.75 0> }
  212.         }
  213.       }
  214.     }
  215.     union {
  216.       union {
  217.         union {
  218.           object { CuvetteElemB rotate <0 90 0>}
  219.           object { CuvetteElemB rotate <0 101.25 0> }
  220.         }
  221.         union {
  222.           object { CuvetteElemB rotate <0 112.50 0>}
  223.           object { CuvetteElemB rotate <0 123.75 0> }
  224.         }
  225.       }
  226.       union {
  227.         union {
  228.           object { CuvetteElemB rotate <0 135 0>}
  229.           object { CuvetteElemB rotate <0 146.25 0> }
  230.         }
  231.         union {
  232.           object { CuvetteElemB rotate <0 157.50 0>}
  233.           object { CuvetteElemB rotate <0 168.75 0> }
  234.         }
  235.       }
  236.     }
  237.   }
  238.  
  239. #declare Bassin = object {
  240.   intersection { 
  241.     object { Paraboloid_Y scale <1 0.06388888889 1> translate <0 7.325 0> }
  242.     plane { <0 1 0> 9.3 }
  243.   }
  244.   scale <0.9 1 0.9>
  245.   texture {
  246.     color red 0.9 green 0.95 blue 0.9
  247.     ambient 0.03 
  248.     diffuse 0.0175
  249. //    reflection 0.10
  250.     refraction 0.95
  251.     ior 1.33      
  252.     phong 0.15
  253.     phong_size 150
  254.     bump { 
  255.       bumps 0.055
  256.       scale <0.1 0.1 0.1>
  257.       ripples 0.18 { center < 2.297 9.3 0> frequency 5 phase 0 decay 0.8 }
  258.       ripples 0.18 { center <-2.297 9.3 0> frequency 5 phase 0 decay 0.8 }
  259.       ripples 0.18 { center <0 9.3  2.297> frequency 5 phase 0 decay 0.8 }
  260.       ripples 0.18 { center <0 9.3 -2.297> frequency 5 phase 0 decay 0.8 }
  261.     }
  262.   }
  263. }
  264.  
  265. #declare Cuvette = object {
  266.   bound { 
  267.     object {
  268.       difference {
  269.         object { CuvetteA }
  270.         object { CuvetteB translate <0 0.1 0> }
  271.         translate <0 7.3 0>
  272.         scale <0.9 1 0.9>
  273.       }
  274.    }
  275.     object { Bassin }   // eau dans la cuvette 
  276.   }
  277.   by box { <-6.4 7.3 -6.4> <6.4 9.7 6.4> }
  278.    texture {
  279.     White_Marble
  280.     scale <0.5 0.5 0.5>
  281.     ambient 0.2
  282.     diffuse 0.7
  283.     phong 0.25
  284.     phong_size 90
  285.   }
  286. }
  287.      
  288. #declare SommetElem1 = intersection { 
  289.   Hyperboloid_Y 
  290.   slab { <0 1 0> -2.108185106 0 }
  291.   scale <0.45 1.660195772 0.15>
  292. }
  293.  
  294. #declare Sommet1 = bound {
  295.   object { SommetElem1 translate <0 11.1 0> }
  296.   object { SommetElem1 rotate <0 30 0> translate <0 11.1 0> }
  297.   object { SommetElem1 rotate <0 60 0> translate <0 11.1 0> }
  298.   object { SommetElem1 rotate <0 90 0> translate <0 11.1 0> }
  299.   object { SommetElem1 rotate <0 120 0> translate <0 11.1 0> }
  300.   object { SommetElem1 rotate <0 150 0> translate <0 11.1 0> }
  301. }
  302. by box { <-1.2 7.4 -1.2> <1.2 11.1 1.2> }
  303.  
  304. #declare Sommet2 = bound {
  305.   object {
  306.     torus { <0 0 0> <0 0 1> 0.45 0.075 }
  307.     rotate <90 0 0>
  308.     translate <0 11.175 0> 
  309.   }
  310.   object {
  311.     difference { 
  312.       intersection { 
  313.         Cylinder_Y 
  314.         slab { <0 1 0> -0.2 0.2 }
  315.         scale <0.45 1 0.45>
  316.       }
  317.       torus { <0 0 0> <0 0 1> 0.45 0.2 rotate <90 0 0> }
  318.       translate <0 11.45 0>
  319.     }
  320.   }
  321.   object {
  322.     torus { <0 0 0> <0 0 1> 0.45 0.075 }
  323.     rotate <90 0 0>
  324.     translate <0 11.725 0> 
  325.   }
  326. }
  327. by box { <-0.525 11.1 -0.525> <0.525 11.9 0.525> }
  328.  
  329. #declare Sommet = object {
  330.   composite {
  331.     object { Sommet1 }
  332.     object { Sommet2 }
  333.     object {
  334.       difference {
  335.         intersection {
  336.           object { Ellipsoid scale <0.8 0.3 0.8> }
  337.           plane { <0 1 0> 0.17 }
  338.         }
  339.         object {
  340.           intersection { 
  341.             Cylinder_Y 
  342.             slab { <0 1 0> 0 1 }
  343.             scale <0.7 1 0.7>
  344.           }
  345.         }
  346.         translate <0 12.025 0> 
  347.       }
  348.     }
  349.   }
  350.   texture {
  351.     marble       // White_Marble
  352.     turbulence 1.0
  353.     color_map {
  354.       [0.0 0.8 color red 0.9 green 0.9 blue 0.9
  355.                color red 0.5 green 0.5 blue 0.5]
  356.       [0.8 1.0 color red 0.5 green 0.5 blue 0.5
  357.                color red 0.2 green 0.2 blue 0.2]
  358.     }
  359.     scale <0.25 0.25 0.25>
  360.     ambient 0.120
  361.     diffuse 0.225
  362.     phong 0.25
  363.     phong_size 90
  364.   }
  365. }
  366.  
  367. #declare Robinet = object {
  368.   bound {
  369.     intersection {
  370.       intersection {
  371.         torus { <0 0 0> <0 0 1> 0.9 0.09 }
  372.         plane { <1 0 0> 0 rotate <0 0 -30> }
  373.       }
  374.       plane { <-1 0 0> 0 }
  375. //      scale <0.85 1 1> 
  376.       translate <0.75 11.125 0> 
  377.     }
  378.   }
  379.   by box { <0.75 11.8 -0.1> <1.5 12.13 0.1> }
  380.   texture {
  381.     Metal
  382.     color Gold
  383.     ambient 0.2
  384.     diffuse 0.5
  385.     phong 0.25
  386.     phong_size 90
  387.     bump { bumps 0.1 scale <0.013 0.013 0.013> }
  388.   }
  389. }
  390.  
  391. #declare Robinets = composite {
  392.   object { Robinet }
  393.   object { Robinet rotate <0 90 0> }
  394.   object { Robinet rotate <0 180 0> }
  395.   object { Robinet rotate <0 270 0> }
  396. }
  397.  
  398. #declare Jet = object {
  399.   bound {
  400.     difference {
  401.       difference {
  402.         torus { <0 0 0> <0 0 1> 1 0.0310344827 }
  403.         plane { <1 0 0> 0 rotate <0 0 -25> }
  404.       }
  405.       plane { <0 1 0> 0 }
  406.       scale <1.9 2.9 2.9> 
  407.       translate <0.3970253 9.276130278 0> 
  408.     }
  409.   }
  410.   by box { <1.2 9.27 -0.09> <2.75 12.17 0.09> }
  411.   texture {
  412.     color red 0.9 green 0.95 blue 0.9
  413.     ambient 0.03 
  414.     diffuse 0.015
  415. //    reflection 0.10
  416.     refraction 0.96
  417.     ior 1.33      
  418.     phong 0.25
  419.     phong_size 90
  420.     bump { bumps 0.1 scale <0.03 0.03 0.03> }
  421.   }
  422. }
  423.  
  424. #declare Jets = composite {
  425.   object { Jet }
  426.   object { Jet rotate <0 90 0> }
  427.   object { Jet rotate <0 180 0> }
  428.   object { Jet rotate <0 270 0> }
  429. }
  430.  
  431. #declare JetSommet = object {
  432.   bound {
  433.     difference {
  434.       intersection { 
  435.         Paraboloid_Y 
  436.         plane { <0 1 0> 1 }
  437.         scale <0.4 1.1 0.4>
  438.       }
  439.       intersection { 
  440.         Paraboloid_Y 
  441.         plane { <0 1 0> 1.1 }
  442.         scale <0.33 1 0.33>
  443.         translate <0 0.1 0>
  444.       }
  445.       rotate <180 0 0>
  446.       scale <1 0.75 1>
  447.       translate <0 12.925 0>
  448.     }
  449.   }
  450.   by box { <-0.4 12 -0.4> <0.4 13.3 0.4> }
  451.   texture {
  452.     color red 0.9 green 0.93 blue 0.9
  453.     ambient 0.02 
  454.     diffuse 0.01
  455. //    reflection 0.10
  456.     refraction 0.96
  457.     ior 1.33      
  458.     phong 0.25
  459.     phong_size 90
  460.     bump { bumps 0.15 scale <0.03 0.03 0.03> }
  461.   }
  462. }
  463.  
  464. #declare Sol = object {
  465.   plane { <0 1 0> -2 }
  466.   texture {
  467.     color red 0.7 green 0.9 blue 0.3
  468.     ambient 0.075
  469.     diffuse 0.12
  470.     bump {
  471.       bumps 0.25
  472.       scale <0.07 0.07 0.07>
  473.     }
  474.   }
  475. }
  476.  
  477. #declare Pos_Porte = <3 -1.95 24.5>
  478.  
  479. #declare Mur = object {
  480.   difference {
  481.     plane { <0 0 -1> -25 }
  482.     box { <-4 -0.5 -0.5> <4 12.5 22.5> translate Pos_Porte }
  483.   }
  484.   texture {
  485.     Blue_Agate
  486.     rotate <0 30 0>
  487.     ambient 0.04
  488.     diffuse 0.08
  489.   }
  490.   translate <0 1 Recule>
  491.   rotate <0 -30 0>
  492. }
  493.  
  494. #declare Moulure = intersection {
  495.   union {
  496.     union {
  497.       box { <-0.5 -6 -0.4> <0.2 6 0.4> }
  498.       object { Cylinder_Y scale <0.3 1 0.3> translate < 0.2 0 0> }
  499.     }
  500.     object { Cylinder_Y scale <0.3 1 0.3> translate <-0.5 0 0> }
  501.     translate <4.5 0 0>
  502.   }
  503.   intersection {
  504.     plane { <-1  1 0> 0 }
  505.     plane { <-1 -1 0> 0 }
  506.   }
  507. }
  508.  
  509. #declare Moulure1 = object {
  510.   Moulure
  511.   translate <-2.5 0 0>
  512. }
  513.  
  514. #declare Moulure2 = object {
  515.   Moulure
  516.   rotate <0 0 180>
  517.   translate <2.5 0 0>
  518. }
  519.  
  520. #declare Moulure3 = object {
  521.   Moulure
  522.   rotate <0 0 90>
  523.   scale <0.5 1 1>
  524. }
  525.  
  526. #declare Moulure4 = object {
  527.   Moulure3
  528.   rotate <0 0 180>
  529. }
  530.  
  531. #declare Porte = object {
  532.   bound {
  533.     difference {
  534.       box { <-3.5 0 0> <3.5 12 2> }
  535.       union {
  536.         union {
  537.           Moulure1
  538.           Moulure2
  539.         }
  540.         union {
  541.           Moulure3
  542.           Moulure4
  543.         }
  544.         translate <0 6 0>
  545.       }
  546.     }
  547.   }
  548.   by box { <-3.5 0 0> <3.5 12 2> }
  549.   texture {
  550.     Tom_Wood
  551.     scale <0.75 0.75 0.75>
  552.     rotate <90 0 0>
  553.     ambient 0.225
  554.     diffuse 0.45
  555. //    reflection 0.3
  556.     phong 0.15
  557.     phong_size 200
  558.   }
  559.   translate Pos_Porte
  560.   translate <0 1 Recule> 
  561.   rotate <0 -30 0>
  562. }
  563.  
  564. #declare Poignée = object {
  565.   Ellipsoid
  566.   scale <0.35 0.45 0.35>
  567.   translate <3.1 6 -0.3>
  568.   texture {
  569.     Metal
  570.     color Gold
  571.     ambient 0.18
  572.     diffuse 0.35
  573.     phong 0.25
  574.     phong_size 100
  575.     bump { bumps 0.1 scale <0.013 0.013 0.013> }
  576.   }
  577.   translate Pos_Porte
  578.   translate <0 1 Recule> 
  579.   rotate <0 -30 0>
  580. }
  581.  
  582. #declare Cadre = object {
  583.   difference {
  584.     box { <-4 0 0> <4 12.55 2> }
  585.     box { <-3.6 -0.5 -0.5> <3.6 12.15 2.5> }
  586.   }
  587.   texture {
  588.     Tom_Wood
  589.     scale <1.2 1.2 1.2>
  590.     rotate <90 0 0>
  591.     ambient 0.225
  592.     diffuse 0.450
  593.     phong 0.15
  594.     phong_size 200
  595.   }
  596.   translate <0 -0.05 0>
  597.   translate Pos_Porte
  598.   translate <0 1 Recule> 
  599.   rotate <0 -30 0>
  600. }
  601.  
  602. #declare Tableau = object {
  603.   bound {
  604.     object {
  605.       difference {
  606.         box { <-5 -3.75 -0.4> <5 3.75 0> }
  607.         box { <-4.7 -3.45 -0.5> <4.7 3.45 -0.1> }
  608.       }
  609.       texture {
  610.         Tom_Wood
  611.         scale <0.75 0.75 0.75>
  612.         rotate <90 0 0>
  613.         ambient 0.225
  614.         diffuse 0.450
  615.         phong 0.15
  616.         phong_size 90
  617.       }
  618.     }
  619.     object {
  620.       box { <-4.7 -3.45 -0.3> <4.7 3.45 -0.2> }
  621.       texture {
  622.         Tom_Wood
  623.         scale <0.75 0.75 0.75>
  624.         rotate <90 0 0>
  625.         ambient 0.225
  626.         diffuse 0.450
  627.         phong 0.15
  628.         phong_size 90
  629.       
  630.       }
  631.     }
  632.   }
  633.   by box { <-5 -3.75 -0.4> <5 3.75 0> }
  634.   scale <0.75 0.75 1>
  635.   translate <-15 5 24.75>
  636.   translate <0 0.8 Recule> 
  637.   rotate <0 -30 0>
  638. }
  639.  
  640. #declare Tapi = object {
  641.    intersection {
  642.       Cylinder_Y
  643.       slab { <0 1 0> 0 0.01 }
  644.       scale <0.7 1 0.7>
  645.    }
  646.    texture {
  647.       color red 0.9 green 0.95 blue 0.9
  648.       ambient 0.03 
  649.       diffuse 0.0175
  650. //    reflection 0.10
  651.       refraction 0.95
  652.       ior 1.33      
  653.       phong 0.15
  654.       phong_size 150
  655.       bump { 
  656.         bumps 2
  657.         scale <0.1 0.1 0.1>
  658.       }
  659.    }
  660. }
  661.  
  662.  
  663. object { Pied translate <0 1 0> }
  664. //object { Cuvette }
  665. //object { Sommet }
  666. //object { Robinets }
  667. //object { Jets }
  668. //object { JetSommet }
  669. //object { Tapi translate <0 12.1 0> }
  670.  
  671. //object { Sol translate <0 5 0> }
  672. //object { Mur }
  673. //object { Porte }
  674. //object { Poignée }
  675. //object { Cadre }
  676. //object { Tableau }
  677.  
  678. end.
  679.