home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 16 / CD_ASCQ_16_0994.iso / news / 4613 / char2.rrt < prev    next >
Text File  |  1980-01-10  |  5KB  |  238 lines

  1. // Real Ray Tracer
  2. // 'Un char à voile' to break the speed world record.
  3. // Designed by Fabrice LAMIDE & Pascal HAUTIN
  4. // June 1994
  5.  
  6. #include "colors.inc"
  7. #include "shapes.inc"
  8. #include "textures.inc"
  9.  
  10. camera {
  11.   location <-10 7 -12>
  12.   point_at <-1.4 2 0>
  13.   angle 15
  14.   aspect_ratio 0.75
  15. }
  16.  
  17. environment {
  18.   background color red 0.2 green 0.7 blue 1
  19.   fall_off 0.09
  20. }
  21.  
  22.  
  23. //object { light_source { <4 10 -8> intensity 10 color White } }
  24.  
  25. object { light_source { <-30 40 -80> intensity 40 color White } }
  26.  
  27.  
  28. #declare Materiau = texture {
  29.   color White
  30.   ambient 0.15
  31.   diffuse 0.55
  32.   reflection 0.30
  33.   phong 0.35
  34.   phong_size 90
  35. }
  36.  
  37. #declare Verre = texture {
  38.   Phong_Transparent
  39.   color SkyBlue
  40.   diffuse 0.01
  41.   refraction 0.99
  42. }
  43.  
  44. #declare Long_Voile = 0.3
  45. #declare Larg_Voile = 4.0
  46. #declare Haut_Voile = 7.0
  47.  
  48. #declare Long_Traverse1 =  7.00
  49. #declare Larg_Traverse1 =  0.40
  50. #declare Epais_Traverse1 = 0.15
  51.  
  52. #declare Long_Traverse2 =  7.00
  53. #declare Larg_Traverse2 =  0.35
  54. #declare Epais_Traverse2 = 0.15
  55.  
  56. #declare Abaisser_trav = -0.375
  57.  
  58. #declare Long_Cockpit =  0.8
  59. #declare Larg_Cockpit =  2.5
  60. #declare Epais_Cockpit = 0.8
  61.  
  62. #declare Rayon_Jante = 0.5
  63. #declare Rayon_Pneu = 0.05
  64. #declare Somme_Rayons = 0.55
  65.  
  66. #declare M_Somme_Rayons = -0.55
  67.  
  68. #declare Voile = object {
  69.   union {
  70.     intersection {
  71.       QCone_Y
  72.       slab { <0 1 0> 0.5 1 }
  73.       translate <0 -0.5 0>
  74.       scale <2 20 2>
  75.       scale <0.9987523389 0.9987523389 0.9987523389>
  76.     }
  77.     intersection {
  78.       Ellipsoid 
  79.       slab { <0 1 0> -0.049937617 -1 }
  80.       translate <0 0.049937617 0>
  81.     }
  82.   }
  83.   rotate <0 0 180> // Symetrie /Oxz
  84.   scale <0.0909090909 0.0909090909 0.0909090909>
  85.   translate <0 0.908 0>
  86.   scale <Larg_Voile Haut_Voile Long_Voile>
  87.  
  88.   texture { Materiau }
  89. }
  90.  
  91. #declare Traverse1 = object {
  92.   intersection {
  93.     intersection {
  94.       Cylinder_Z
  95.       plane { <0 -1 0> 0 }
  96.     }
  97.     slab { <0 0 1> -0.5 0.5 }
  98.   }
  99.     
  100.   texture { Materiau }
  101. }
  102.  
  103. #declare Traverse2 = object {
  104.   intersection {
  105.     intersection {
  106.       intersection {
  107.         Cylinder_Z
  108.         plane { <0 -1 0> 0 }
  109.       }
  110.       slab { <0 0 1> -0.5 0.5 }
  111.     }
  112.     object { Ellipsoid scale <1 1 0.5> }
  113.   }
  114.     
  115.   texture { Materiau }
  116. }
  117.  
  118.  
  119. #declare Cockpit = object {
  120.   difference {
  121.     difference {
  122.       object { Ellipsoid }
  123.       object { Ellipsoid scale <0.93 0.93 0.93> }
  124.     }
  125.     box { <-1 0.333 -1> <0.5 1 1> }
  126.   }
  127.  
  128.   texture { Materiau }
  129. }
  130.  
  131. #declare Hublot = object {
  132.   intersection {
  133.     difference {
  134.       object { Ellipsoid }
  135.       object { Ellipsoid scale <0.93 0.93 0.93> }
  136.     }
  137.     box { <-1 0.333 -1> <0.5 1 1> }
  138.   }
  139.  
  140.   texture { Verre }
  141. }
  142.  
  143. #declare Siege = object {
  144.   difference {
  145.     box { <-0.2 -0.5 -0.5> <0.5 0.45 0.5> }
  146.     box { <-1 -0.4 -1> <0.4 1 1> }
  147.   }
  148.  
  149.   texture { color Red }
  150. }
  151.  
  152. #declare Cabine = object {
  153.   bound {
  154.     object { Cockpit }
  155.     object { Hublot }
  156.     object { Siege }
  157.   }
  158.   by box { <-1 -1 -1> <1 1 1> }
  159.   scale <0.5 0.5 0.5>
  160.   scale <Larg_Cockpit Epais_Cockpit Long_Cockpit>  
  161. }
  162.  
  163. #declare Jante = object {
  164.   intersection {
  165.     object { Cylinder_Z }
  166.     slab { <0 0 1> -1 1 }
  167.   }
  168.   scale <Rayon_Jante Rayon_Jante Rayon_Pneu>
  169.  
  170.   texture { Materiau }
  171. }
  172.  
  173. #declare Pneu = object {
  174.   difference {
  175.     torus { <0 0 0> <0 0 1> Rayon_Jante Rayon_Pneu }
  176.     object { Cylinder_Z scale <Rayon_Jante Rayon_Jante 1> }
  177.   }    
  178.  
  179.   texture {
  180.     color Black
  181.     ambient 0.2
  182.     diffuse 0.4
  183.     reflection 0.2
  184.     phong 0.3
  185.     phong_size 90
  186.   }
  187. }
  188.  
  189. #declare Roue = object {
  190.   bound {
  191.     object { Jante }
  192.     object { Pneu }
  193.   }
  194.   by sphere { <0 0 0> Somme_Rayons }
  195. }
  196.  
  197. #declare Sable = object {
  198.   plane { <0 1 0> Abaisser_trav }
  199.   translate <0 M_Somme_Rayons 0>
  200.  
  201.   texture {
  202.     color red 1.0 green 0.75 blue 0.25
  203.     ambient 0.20
  204.     diffuse 0.55
  205.     bump { bumps 0.3 scale <0.05 0.05 0.05> }
  206.   }
  207. }
  208.  
  209. object { Sable }
  210.  
  211. object {
  212. composite {
  213.  
  214.   object { Voile translate <0.30 Abaisser_trav 0> }
  215.   object { Cabine translate <-0.20 0 -0.80> }
  216.  
  217.   object {
  218.     Traverse1
  219.     scale <Larg_Traverse1 Epais_Traverse1 Long_Traverse1>
  220.     translate <0 Abaisser_trav 0>
  221.   }
  222.  
  223.   object {
  224.     Traverse2
  225.     scale <Larg_Traverse2 Epais_Traverse2 Long_Traverse2>
  226.     rotate <0 90 0>
  227.     translate <0 Abaisser_trav 3.6>
  228.   }
  229. }
  230. translate <0 -0.25 0>
  231. }
  232.  
  233. object { Roue translate <0 Abaisser_trav -3.5> }
  234. object { Roue translate <-3.75 Abaisser_trav 3.55> }
  235. object { Roue translate <3.75 Abaisser_trav 3.55> }
  236.  
  237. end.
  238.