#include "colors.inc" #include "textures.inc" // Rune's Particle System // Sample animation scene file // // Suggested command line settings (for 25 frames per second): // +kff50 +kc #declare booster = union { quadric { < 3, -1, 0 >, < 0, 0, 0 >, < 0, 0, 3 >, -1 pigment {Gray95} finish { phong 1 ambient 0.2 } clipped_by { box { <-7,-10,-10> <7,10,20>}} translate <0,0,2> scale <.2,.2,.2> rotate 90*z } quadric { < 20, 20, 1 >, < 0, 0, 0 >, < 0, 0, 0 >, -1 pigment {Gray95} finish { phong 1 ambient 0.2 } scale <8,8,8> translate <0,-2.8,-1> rotate 90*z } scale 1.5*x scale 1.5*y translate <0,-40,0> } #declare toppart = union { quadric { < 10, 10, -2 >, < 0, 0, 0 >, < 0, 0, 0 >, -1 pigment {Gray95} finish { phong 1 ambient 0.2 } clipped_by { box {<-100, -100, -2.5> <100,100,2.5>}} } intersection { quadric { < 10, 10, -2 >, < 0, 0, 0 >, < 0, 0, 0 >, -1 texture {Water} interior { ior 1.33 } finish { reflection { 0.03, 1 }} clipped_by { box {<-100, -100, -2.5> <100,100,2.5>}} } box {<-100,-100,0> <100,100,2.3> texture {Water} interior { ior 1.33 } finish { reflection { 0.03, 1 }} }} quadric { < -10, -10, 5 >, < 0, 0, 0 >, < 0, 0, 0 >, -1 pigment {Gray95} finish { phong 1 ambient 0.2 } clipped_by {box {<-100,-100,-1.4> <100,100,1.4>}} rotate 90*x rotate 90*z } quadric { < -10, -10, 5 >, < 0, 0, 0 >, < 0, 0, 0 >, -1 pigment {Gray95} finish { phong 1 ambient 0.2 } clipped_by {box {<-100,-100,-1.4> <100,100,1.4>}} rotate 90*x } quadric { < 20, 20, 8 >, < 0, 0, 0 >, < 0, 0, 0 >, -1 pigment {Red} finish { phong 1 ambient 0.2 } scale <5,5,5> // clipped_by { box { <-100,-100,2> <100,100,10>}} // pigment, finish and transformations rotate 90*x rotate 90*z translate <-4.2,0,0> } quadric { < 20, 20, 8 >, < 0, 0, 0 >, < 0, 0, 0 >, -1 pigment {Red} finish { phong 1 ambient 0.2 } scale <5,5,5> // clipped_by { box { <-100,-100,2> <100,100,10>}} // pigment, finish and transformations rotate 90*x rotate 90*z translate <-4.2,0,0> rotate 90*z } quadric { < 20, 20, 8 >, < 0, 0, 0 >, < 0, 0, 0 >, -1 pigment {Red} finish { phong 1 ambient 0.2 } scale <5,5,5> // clipped_by { box { <-100,-100,2> <100,100,10>}} // pigment, finish and transformations rotate 90*x rotate 90*z translate <-4.2,0,0> rotate 270*z } rotate -5*z translate <-4.2,-40,8.75> } global_settings { ambient_light rgb<1, 1, 1> } camera { location <0,-80,50> look_at <0,0,0> } global_settings {max_trace_level 50} sky_sphere { pigment { color Black } } light_source { < -500, -500, 1000 > color White } #declare Index = 1; #while(Index < 33) object { booster rotate Index*12*z } #declare Index = Index + 1; #end #declare Index = 1; #while(Index < 33) object { toppart rotate Index*12*z } #declare Index = Index + 1; #end quadric { < 1, 1, 0 >, < 0, 0, 0 >, < 0, 0, 40 >, -1 pigment {Gray95} finish { phong 1 ambient 0.2 } rotate 180*y translate <0,0,-15> // scale <5,5,5> clipped_by { box { <-100,-100,10> <100,100,-50>} } // pigment, finish and transformations } intersection { quadric { < 1, 1, 0 >, < 0, 0, 0 >, < 0, 0, 40 >, -1 texture {Water} finish { phong 1 ambient 0.2 } rotate 180*y translate <0,0,-15> // scale <5,5,5> clipped_by { box { <-100,-100,10>, <100,100,-50>}} // pigment, finish and transformations } box {<-100,-100,0> <100,100,-50> texture {Water} interior { ior 1.33 } finish { reflection { 0.03, 1 } } normal { waves 1 frequency 15.0 scale 2.0 } }} //a single media statement for the waterfall #declare falling_water = media { emission 2.5 // the emission value is critical, especially // if you change the size, you have to adapt this value density { cylindrical warp {turbulence <1,1,1>} octaves 10 omega .5 lambda 1.5 color_map { [0.0 color rgb <0,0,0>] [0.4 color rgb <0,0,0>] [0.5 color rgb <.6,1,1>] [0.6 color rgb <0,0,0>] [0.9 color rgb <0,0,0>] [0.9 color rgb <1,1,1>] [1.0 color rgb <1,1,1>] } //end color map } //end density scale <2,2,30> } //end media //the waterfall is a transparent sphere scaled to a long ellipsoid //and filled with the media "falling_water" object{cylinder { <0,0,0>, <0,0,30> 2 pigment {color rgbt<1, 1, 1, .99>} interior {media {falling_water}} hollow}}