home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 September (IDG) / Sep99.iso / Serious Software / POV-Ray 3.1 / Scenes / advanced / ionic5 / ionic5.pov < prev    next >
Encoding:
Text File  |  1998-01-21  |  14.9 KB  |  727 lines  |  [TEXT/POV3]

  1. // Persistence Of Vision raytracer version 3.1 sample file.
  2. //   This data includes 1 Wall, 1 large 2nd floor column,
  3. //   & 2 smaller ionic colums.
  4.  
  5. //   b-snake.dat is the lower ctds twist that goes around the
  6. //   door openings.
  7. //   s-head3.dat is the head & top twist of creature
  8. //   turn.dat is ctds data that creates the ionic turned capitals.
  9. //   panther.dat is csg of panther figure.
  10.  
  11. //  Modified for use in stereo pair. Two of the PNG
  12. //  images have been replaced with single colors, and a third column
  13. //  was added to the bottom row.
  14. //
  15. //  Three cameras are included, the original, and two for stereo.
  16.  
  17. // gamma devised to approximate the illustration in Ray Tracing Creations II
  18.  
  19.  
  20. global_settings { assumed_gamma 1.8 }
  21.  
  22. #include "colors.inc"
  23. #include "shapes.inc"
  24. #include "marble.inc"
  25. #include "b-snake.inc"
  26. #include "turn.inc"
  27. #include "panther.inc"
  28. #include "s-head3.inc"
  29.  
  30. #declare pink = color red 1.0 green 0.5 blue 0.5;
  31.  
  32.  
  33. /* original camera */
  34. camera {
  35.    location <-50, 80, -220>
  36.    direction <0, 0, 1.5>
  37.    up <0, 1, 0>
  38.    right <4/3, 0, 0>
  39. }
  40.  
  41. // Optional stereo views:
  42. /* camera for left eye, render at 768 x 480 or similar aspect ratio */
  43. /*
  44. camera {
  45.     location <-61, 80, -220>
  46.     direction <0, 0, 1.4>
  47.     up <0, 1, 0>
  48.     right <1.6, 0, 0>
  49. }
  50. */
  51.  
  52. /* camera for right eye, render at 768 x 480 or similar aspect ratio */
  53. /*
  54. camera {
  55.     location <-39, 80, -220>
  56.     direction <0, 0, 1.4>
  57.     up <0, 1, 0>
  58.     right <1.6, 0, 0>
  59. }
  60. */
  61.  
  62. /*-------------- WORLD WALLS ---------------------------------*/
  63. sphere {
  64.    <0, 0, 0>, 50000
  65.    hollow on
  66.    texture {
  67.       pigment { MidnightBlue }
  68.       finish {
  69.          ambient 1.0
  70.          diffuse 0.0
  71.       }
  72.    }
  73. }
  74.  
  75. /*---------------LIGHT #1------------------------------------*/
  76. light_source { <700, 150, -500> color White }
  77.  
  78. /*--------------LIGHT #2-------------------------------------*/
  79. light_source { <-4000, 100, -1000> color White }
  80.  
  81.  
  82. /**********************************************************************/
  83.  
  84. /*-----------BASE OF COLUMN A / TOP FLOOR-------------------*/
  85. #declare base_a = union {
  86.    sphere { <0, 0, 0>, 1 scale <13, 5.5, 13> }
  87.    sphere { <0, 0, 0>, 1 scale <11, 3, 11> translate 4*y  }
  88.    cylinder { <0,0,0>, y, 1 scale <10, 4, 10> translate 5*y }
  89.  
  90.    texture {
  91.       marble1
  92.       scale <9, 6, 4>
  93.       finish {
  94.          ambient 0.5
  95.          diffuse 1
  96.       }
  97.    }
  98.    texture {
  99.       marble4
  100.       scale <7, 12, 9>
  101.       rotate <0, 0, -40>
  102.       finish {
  103.          diffuse 1.0
  104.          phong 0.6
  105.          phong_size 50
  106.       }
  107.    }
  108.  
  109.    rotate 40*y
  110. }
  111.  
  112. /*-----------MOTIF TILE WORK--------------------*/
  113. #declare motif1 = cylinder {
  114.    <0,0,0>, y, 1
  115.    scale <9.5, 7, 9.5>
  116.  
  117.    texture {
  118.       pigment {
  119.          image_map { png "congo4.png" }
  120.          scale <19, 7, 1>
  121.          translate <-9.5, 0, -1>
  122.        }
  123.        finish {
  124.           ambient 0.3
  125.           diffuse 0.9
  126.           phong 0.6
  127.        }
  128.     }
  129.  }
  130.  
  131.  
  132. /*----------- COLUMN A -------------------------------------------------*/
  133. #declare column_a = cylinder {
  134.    <0,0,0>, y, 1
  135.    scale <9.3, 50, 9.3>
  136.  
  137.    texture {
  138.       marble1
  139.       finish {
  140.          crand 0.01
  141.          ambient 0.2
  142.          diffuse 0.8
  143.       }
  144.       scale <16, 4, 4>
  145.    }
  146.    texture {
  147.       marble2
  148.       scale <10, 6, 5>
  149.       rotate -30*z
  150.       finish { diffuse 1.0 }
  151.    }
  152.    texture {
  153.       marble4
  154.       finish {
  155.          phong 0.6
  156.          phong_size 45
  157.       }
  158.       scale <8, 15, 5>
  159.       rotate <0, 0, 50>
  160.    }
  161.  
  162.    rotate 10*y
  163. }
  164.  
  165.  
  166.  
  167. /*-----------COMBINE COLUMN & BASE --------------------------------*/
  168. #declare top_column = union {
  169.    object { base_a }
  170.    object { motif1 translate 9*y }
  171.    object { column_a translate 12*y }
  172. }
  173.  
  174.  
  175. /*--------------------TOP  FLOOR---------------------------------------*/
  176. #declare gfloor = object {
  177.    Cube
  178.    scale <100, 1, 50>
  179.  
  180.    texture {
  181.       pigment { Salmon }
  182.       finish {
  183.          ambient 0.2
  184.          diffuse 0.5
  185.          phong 1.0
  186.          phong_size 10
  187.       }
  188.    }
  189. }
  190.  
  191. /*----------- ROUND CORNER ----------------------------*/
  192. #declare sp1 = sphere { <0, 0, 0>, 2 }
  193.  
  194. #declare round_cap = object {
  195.    union {
  196.       object { sp1 translate <-100, 0, -50> }
  197.       object { sp1 translate <-100, 0,  50> }
  198.       object { sp1 translate <100, 0, -50> }
  199.       object { sp1 translate <100, 0,  50>  }
  200.       cylinder { <0,0,0>, x, 1 scale <200, 2, 2> translate <-100, 0, -50> }
  201.       cylinder { <0,0,0>, z, 1 scale <2, 2, 100> translate <-100, 0, -50> }
  202.    }
  203.  
  204.    texture {
  205.       marble1
  206.       scale <50, 10, 40>
  207.       finish {
  208.          ambient 0.4
  209.          diffuse 0.9
  210.       }
  211.    }
  212.    texture {
  213.       marble2
  214.       scale <40, 5, 20>
  215.       rotate <0, 0, 40>
  216.    }
  217.    texture {
  218.       marble4
  219.       scale <20, 20, 20>
  220.       rotate <0, 0, -40>
  221.       finish { phong 0.6 phong_size 20 }
  222.    }
  223. }
  224.  
  225. /*--------------- ONE DENTILE ----------------------------------*/
  226. #declare d1 = object { Cube scale <1, 1.5, 2> }
  227.  
  228. #declare cornice = union {
  229.    object { Cube scale <103, 0.5, 53> translate <0, 2.5, 0> }
  230.    object { Cube scale <103, 1, 53>   translate <0, -2, 0>  }
  231.    object { Cube scale <101, 2, 51>   translate <0, 0, 0>   }
  232.  
  233.    texture {
  234.       marble1
  235.       scale <10, 6, 4>
  236.       finish {
  237.          ambient 0.4
  238.          diffuse 1.0
  239.       }
  240.    }
  241.    texture {
  242.       marble2
  243.       scale <7, 6, 4>
  244.       rotate <0, 0, 40>
  245.    }
  246.    texture {
  247.       marble4
  248.       scale <3, 6, 5>
  249.       rotate <0, 0, -40>
  250.       finish {
  251.          phong 0.6
  252.          phong_size 20
  253.       }
  254.    }
  255. }
  256.  
  257. /*-------------------- ROW OF DENTILES ---------------*/
  258. #declare dentile_a = union {
  259.    object { d1 translate -50*x }
  260.    object { d1 translate -45*x }
  261.    object { d1 translate -40*x }
  262.    object { d1 translate -35*x }
  263.    object { d1 translate -30*x }
  264.    object { d1 translate -25*x }
  265.    object { d1 translate -20*x }
  266.    object { d1 translate -15*x }
  267.    object { d1 translate -10*x }
  268.    object { d1 translate  -5*x }
  269.    object { d1 translate   0*x }
  270.    object { d1 translate  50*x }
  271.    object { d1 translate  45*x }
  272.    object { d1 translate  40*x }
  273.    object { d1 translate  35*x }
  274.    object { d1 translate  30*x }
  275.    object { d1 translate  25*x }
  276.    object { d1 translate  20*x }
  277.    object { d1 translate  15*x }
  278.    object { d1 translate  10*x }
  279.    object { d1 translate   5*x }
  280.  
  281.    texture {
  282.       marble1
  283.       scale <10, 6, 4>
  284.       finish {
  285.          ambient 0.4
  286.          diffuse 0.9
  287.       }
  288.    }
  289.    texture {
  290.       marble2
  291.       scale <7, 6, 4>
  292.       rotate <0, 0, 40>
  293.    }
  294.    texture {
  295.       marble4
  296.       scale <3, 6, 4>
  297.       rotate <0, 0, -40>
  298.       finish {
  299.          phong 0.6
  300.          phong_size 20
  301.       }
  302.    }
  303. }
  304.  
  305. /*--------------  COMBINE CORNICE, FLOOR, CAP & DENTILES -----------*/
  306. #declare top_floor = union {
  307.    object { gfloor    translate <0, 9, 0>     }
  308.    object { round_cap translate <0, 7, 0>     }
  309.    object { cornice   translate <0, 3, 0>     }
  310.    object { dentile_a translate <-50, 4, -52> }
  311.    object { dentile_a translate < 50, 4, -52>  }
  312. }
  313.  
  314. /*------------------MAKE AN IONIC CAPIAL---------------------------*/
  315.  
  316. #declare turn = object { s1 rotate -90*x }
  317.  
  318. /*--------------- 1/2 SECTION OF CAP ------------------------------*/
  319. #declare cap_a = union {
  320.    sphere {
  321.       <0, 0, 0>, 1
  322.       scale <7, 2, 7>
  323.       translate <0, 1, 0>
  324.    }
  325.    cylinder {
  326.       <0,0,0>, y, 1
  327.       scale <6, 5, 6>
  328.       translate <0, 2, 0>
  329.    }
  330.    sphere {
  331.       <0, 0, 0>, 1
  332.       scale <8, 3, 8>
  333.       translate <0, 8, 0>
  334.    }
  335.    cylinder {
  336.       <0,0,0>, y, 1
  337.       scale <8, 2, 8>
  338.       translate <0, 8, 0>
  339.    }
  340.  
  341.    texture {
  342.       marble1
  343.       finish {
  344.          ambient 0.4
  345.          diffuse 1.0
  346.       }
  347.       scale <5, 13, 4>
  348.    }
  349.    texture {
  350.       marble4
  351.       finish {
  352.          diffuse 1.0
  353.          phong 0.6
  354.          phong_size 20
  355.       }
  356.       scale <5, 7, 3>
  357.       rotate <0, 0, 50>
  358.    }
  359. }
  360.  
  361.  
  362. /*-------------- THE OTHER 1/2-----------------------------*/
  363. #declare cap_b = union {
  364.    cylinder { <0,0,0>, y, 1 scale <1.2, 8, 1.2> translate <1, 0, -4>  }
  365.    cylinder { <0,0,0>, y, 1 scale <1.2, 8, 1.2> translate <-1, 0, -4> }
  366.  
  367.    cylinder { <0,0,0>, y, 1 scale <1.2, 4, 1.2> translate <-2, 0, -4> }
  368.    cylinder { <0,0,0>, y, 1 scale <1.2, 4, 1.2> translate <2, 0, -4>  }
  369.  
  370.    object { Cube scale <10, 2, 8> translate <0, 10, 2> }
  371.    object { Cube scale <7, 4, 4> translate <0, 4, 0>  }
  372.    cylinder { <0,0,0>, z, 1 scale <4.5, 4.5, 8> translate <-6, 4, -4> }
  373.    cylinder { <0,0,0>, z, 1 scale <4.5, 4.5, 8> translate <6, 4, -4>  }
  374.  
  375.    texture {
  376.       marble1
  377.       finish {
  378.          ambient 0.4
  379.          diffuse 1.0
  380.       }
  381.       scale <5, 13, 4>
  382.    }
  383.    texture {
  384.       marble4
  385.       finish {
  386.          diffuse 1.0
  387.          phong 0.6
  388.          phong_size 20
  389.       }
  390.       scale <5, 7, 3>
  391.       rotate 50*z
  392.    }
  393. }
  394.  
  395.  
  396. /*-----------2 HALFS & 2 TURNS MAKE A WHOLE ------------------------*/
  397. #declare capital = union {
  398.    object { cap_a translate <0, 0, 0> }
  399.    object { cap_b translate <0, 10, 0> }
  400.    object { turn translate <-6, 14, -4> }
  401.    object { turn rotate <0, 180, 0> translate <6, 14, -4> }
  402. }
  403.  
  404. /*--------------MAKE COLUMN-------------------*/
  405.  
  406.  
  407. /*-----------MOTIF TILE WORK--------------------*/
  408. #declare motif2 = cylinder {
  409.    <0,0,0>, y, 1
  410.    scale <6.5, 8, 6.5>
  411.  
  412.    texture {
  413.       pigment {
  414.          image_map { png "congo4.png" }
  415.          scale <13, 8, 1>
  416.          translate <-6.5, 0, -1>
  417.       }
  418.       finish {
  419.          ambient 0.3
  420.          diffuse 0.9
  421.          phong 1.0
  422.       }
  423.    }
  424. }
  425.  
  426. #declare column_b = cylinder {
  427.    <0,0,0>, y, 1
  428.    scale <6, 54, 6>
  429.  
  430.    texture {
  431.       marble1
  432.       finish {
  433.          ambient 0.4
  434.          diffuse 0.8
  435.          crand 0.1
  436.       }
  437.       scale <9, 30, 18>
  438.    }
  439.    texture {
  440.       marble2
  441.       scale <10, 18, 5>
  442.       rotate <0, 0, -30>
  443.       finish { diffuse 1.0 }
  444.    }
  445.    texture {
  446.       marble4
  447.       finish {
  448.          diffuse 0.9
  449.          phong 0.8
  450.          phong_size 45
  451.       }
  452.       scale <4, 15, 5>
  453.       rotate 50*z
  454.    }
  455. }
  456.  
  457.  
  458. /*-----------THE COMPLETE BOTTOM COLUMN---------------------------------*/
  459. #declare bottom_column = union {
  460.    object { capital  translate <0, 58, 0> }
  461.    object { motif2   translate <0, 50, 0>  }
  462.    object { column_b translate <0, 0, 0> }
  463. }
  464.  
  465. /*---------------------START LOWER WALLS-----------------------------*/
  466.  
  467. /*----------- ABOVE DOOR SECTION OF WALL -----------------------------*/
  468. #declare brick_wall = object {
  469.    Cube
  470.    scale <30, 6, 3>
  471.  
  472.    texture {
  473.       marble1
  474.       finish {
  475.          ambient 0.2
  476.          diffuse 0.9
  477.       }
  478.       scale <20, 30, 4>
  479.    }
  480.    texture {
  481.       marble2
  482.       scale <20, 9, 5>
  483.       finish { diffuse 1.0 }
  484.       rotate -30*z
  485.    }
  486.    texture {
  487.       marble4
  488.       finish {
  489.          phong 0.6
  490.          phong_size 25
  491.       }
  492.       scale <18, 18, 3>
  493.       rotate 50*z
  494.    }
  495. }
  496.  
  497. /*-------------- ARCH SECTION OF WALL --------------------------------*/
  498. #declare top_wall = object {
  499.    difference {
  500.       object { Cube scale <30, 10, 3> translate <0, 0, 0.01> }
  501.       object { Cylinder_Z scale <13, 13, 1> translate <0, -10, 0> }
  502.    }
  503.  
  504.    texture {
  505.       marble1
  506.       finish {
  507.          ambient 0.2
  508.          diffuse 0.9
  509.       }
  510.       scale <30, 20, 4>
  511.    }
  512.    texture {
  513.       marble2
  514.       scale <26, 16, 5>
  515.       finish { diffuse 1.0 }
  516.       rotate -30*z
  517.    }
  518.    texture {
  519.       marble4
  520.       finish {
  521.          phong 0.6
  522.          phong_size 25
  523.       }
  524.       scale <15, 27, 2>
  525.       rotate 50*z
  526.    }
  527. }
  528.  
  529.  
  530. /*------------------ TRIM ---------------------------------------------*/
  531. #declare molding_2 = union {
  532.    difference {
  533.       cylinder { <0,0,0>, z, 1 scale <16, 16, 12> translate <0, 0, -6>  }
  534.       object { Cylinder_Z scale <13, 13, 1> }
  535.    }
  536.    object { Cube scale <10, 2, 6> translate <-21, -2, 0>  }
  537.    object { Cube scale <10, 2, 6> translate <21, -2, 0>  }
  538.    object { Cube scale <31, 1, 6> translate <0, 17, 0>  }
  539.  
  540.    texture {
  541.       marble1
  542.       finish {
  543.          ambient 0.5
  544.          diffuse 1.0
  545.       }
  546.       scale <15, 3, 4>
  547.    }
  548.    texture {
  549.       marble4
  550.       finish {
  551.          phong 0.8
  552.          phong_size 15
  553.          ambient 0.6
  554.       }
  555.       scale <15, 7, 6>
  556.       rotate 50*z
  557.    }
  558. }
  559.  
  560. #declare motif3 = object {
  561.    Cube
  562.    scale <9.5, 5, 3.1>
  563.  
  564.    texture {
  565.       pigment {
  566.          image_map { png "congo4.png"  }
  567.          scale <19, 10, 1>
  568.          translate <-9.5, -5, -1>
  569.       }
  570.       finish {
  571.          ambient 0.3
  572.          diffuse 0.9
  573.          phong 1.0
  574.       }
  575.    }
  576. }
  577.  
  578. /*----------WALLS FLANKING DOOR WAY -----------------------------------*/
  579. #declare low_wall = object {
  580.    Cube
  581.    scale <9, 22, 3>
  582.  
  583.    texture {
  584.       marble1
  585.       finish {
  586.          ambient 0.3
  587.          diffuse 0.9
  588.       }
  589.       scale <15, 20, 7>
  590.    }
  591.    texture {
  592.       marble2
  593.       scale <10, 25, 3>
  594.       finish { diffuse 1.0 }
  595.       rotate <0, 0, -30>
  596.    }
  597.    texture {
  598.       marble4
  599.       finish {
  600.          phong 0.8
  601.          phong_size 25
  602.          ambient 0.5
  603.       }
  604.       scale <8, 16, 3>
  605.       rotate 50*z
  606.    }
  607. }
  608.  
  609. /*----------COMPOSITE THE WALL------------------------------*/
  610.  
  611. #declare wall = union {
  612.    object { low_wall translate <-21, 22, 0>  }
  613.    object { low_wall translate <21, 22, 0>  }
  614.    object { motif3 translate <-21, 42, 0>  }
  615.    object { motif3 translate <21, 42, 0>  }
  616.    object { molding_2 translate <0, 50, 0>  }
  617.    object { top_wall translate <0, 60, 0>  }
  618.    object { brick_wall translate <0, 74, 0>  }
  619. }
  620.  
  621.  
  622. /*--------CREATE INSIDE BACK WALL-----------------------*/
  623. object {
  624.    Cube
  625.    scale <95, 55, 1>
  626.  
  627.    texture {
  628.       marble1
  629.       finish {
  630.          ambient 0.2
  631.          diffuse 0.9
  632.       }
  633.       scale <40, 30, 5>
  634.    }
  635.    texture {
  636.       marble2
  637.       scale <30, 60, 3>
  638.       rotate -30*z
  639.    }
  640.    texture {
  641.       marble4
  642.       finish {
  643.          phong 0.8
  644.          phong_size 25
  645.       }
  646.       scale <30, 20, 3>
  647.       rotate 50*z
  648.    }
  649.    translate <0, 15, 10>
  650. }
  651.  
  652.  
  653. /*----------*** PUT UP THE WALLS ****--------------------*/
  654.  
  655. object { top_column rotate 10*y  scale 1.9 translate <-30, 94, -25> }
  656. object { top_floor  translate <-10, 80, 0> }
  657. object { bottom_column scale <1.3, 1, 1.3> translate <-100, 0, -40>  }
  658. object { bottom_column scale <1.3, 1, 1.3> translate <-30, 0, -40>  }
  659. object { bottom_column scale <1.3, 1, 1.3> translate <40, 0, -40>  }
  660. object { wall translate <5, 0, -32>    }
  661. object { wall translate <-65, 0, -32>  }
  662.  
  663.  
  664.    /*---------------------BACKDROP---------------------------------*/
  665. object {
  666.    Cube
  667.    scale <2000, 1500, 1>
  668.  
  669.    texture {
  670.       pigment { Maroon }
  671.       finish {
  672.          ambient 0.2
  673.          diffuse 0.6
  674.       }
  675.    }
  676.  
  677.    texture {
  678.       pigment {
  679.          gradient y
  680.          color_map {
  681.             [0.0 0.3 color Salmon color BlueViolet filter 0.3]
  682.             [0.3 1.0 color BlueViolet filter 0.3 color Black filter 0.2]
  683.          }
  684.          scale <4000, 3000, 1>
  685.          translate <0, -1500, 0>
  686.       }
  687.       finish {
  688.          ambient 1.0
  689.          diffuse 0.0
  690.       }
  691.    }
  692.    scale <1, 1, 1>
  693.    translate <0, 0, 2000>
  694. }
  695.  
  696.  
  697. /*------------------- CREATURE & MOTHER-IN-LAW -------------------------*/
  698.  
  699. object {
  700.    panther
  701.    rotate -20*y
  702.    scale 1.2
  703.    translate <-70, 89.5, -10>
  704. }
  705.  
  706. object {
  707.    lizard
  708.    scale <1, 0.9, 1>
  709.    rotate -10*z
  710.    translate <-33, 16, -20>
  711. }
  712.  
  713. #declare snake = union {
  714.     object { top }
  715.     object {
  716.        head
  717.        scale <1.9, 1.6, 1.6>
  718.        rotate <0, -90, -90>
  719.        translate <23, 0, -13>
  720.     }
  721.     rotate <-90, -180, -90>
  722. }
  723.  
  724. object { snake  translate <-4, 87, -68> }
  725.  
  726. // end-of-file
  727.