// Persistence of Vision Ray Tracer Scene Description File // File: rmfsdflyover.pov (old name, new: rmf-mountains_lakes_2001-2017.pov) // Date: 2000.56, 2001.05, 2017.1096 // Auth: Bob Hughes // Desc: MegaPOV's ridged multifractal with slope dependent texturing (modified to 3.7) // Note: MegaPov 0.4+ render with aspect ratio of 1.667:1 (for example 166x100) /* THIS FILE WAS ADAPTED FROM MEGAPOV 0.7 TO USE POV-Ray 3.7 */ /* requires many more changes/fixes, so that is left to you */ #version 3.71;//unofficial MegaPov 0.7; /* hint: for a still frame use following command line */ //cmd:+ki0 +kf1 +kfi1 +kff100 +sf50 +ef50 #declare Part=1; #declare BlurS=12; // motion blur samples #declare BlurA=.125; // amount #declare _C_=.0125; // snow #declare _Cw_=.9; // water, ice #declare CamZ=.95; // camera zoom #declare CamDist=1.2; // camera distance global_settings { assumed_gamma 1//2//2.4 ambient_light 0.093 max_trace_level 3 number_of_waves 4 // motion_blur BlurS,BlurA*(.0001+pow(clock, .5)) /* ini_option "+qr" ambient_light <.85,.8,.75>*.1 radiosity { pretrace_start .1//0.1 pretrace_end .1//0.01 //0.08 brightness 1.23 //higher is brighter preview [<1 to 10>, (3.3)] count 150 //higher is better/slower [1 to 300>, (100)] error_bound 0.15 //higher is faster/blotchier [<0.3 to 1>, (0.4)] low_error_factor .6 //higher faster/blotchier [>0 to 1>, (0.8)] gray_threshold 0.1 //higher decreases color saturation(?) [0 to 1, (0.5)] minimum_reuse 0.015 //higher is faster/less accurate [<0.01 to 0.02>, (0.015)] nearest_count 2 //higher is slower/smoother [integer 1 to 10, (6)] recursion_limit 1 // 1 is faster/less fill; 2 is slower/more fill [1 or 2, (1)] always_sample on media on normal on } */ } #declare clock_type="W" // zero one zero #declare clock_repeat=1; #include "clockmod.inc" #declare _mCw_=mclock; #declare clock_type="S" // zero one #declare clock_repeat=1; #include "clockmod.inc" #declare _mCs_=mclock; #declare clock_type="D" // zero one #declare clock_combine="W" #declare clock_repeat=1; #declare clock_start=0; #declare clock_finish=.05; #include "clockmod.inc" #declare _mCc_=mclock; #declare clock_type="A" // zero one #declare clock_repeat=1; #declare clock_start=0; #declare clock_finish=.15; #include "clockmod.inc" #declare _mCa_=mclock; #declare clock_type="O" #declare clock_repeat=1; #include "clockmod.inc" #declare _mCo_=mclock; #declare _CtLb_=_mCw_; #declare _CtRb_=_mCw_; #declare _CtLf_=_mCw_; #declare _CtRf_=_mCw_; #declare CamSpos= spline { cubic_spline -0.1,<.05,.1,-9.5>*CamDist 0,<.01,.1,-9>*CamDist .1,<.1,.3,-8.75>*CamDist .175,<.125,.33,-8.5>*CamDist .225,<.225,.225,-8.25>*CamDist // .225, .27,<0.2375,0.22,-9.69> .29,<0.2375,0.21,-9.7> .32,<0.2375,0.2,-9.71> .5,<0.1,.375,-7>*CamDist .775,<-.5,.425,-6>*CamDist .875,<-.2,.3,-5.5>*CamDist .925,<-.125,.167,-5.25>*CamDist 1,<-.067,.067,-4.67>*CamDist 1.1,<-.05,0,-4.5>*CamDist } #declare CamSpnt= spline { cubic_spline -0.1,<0,.1,-9> 0,<.1,.2,-8.5> .1,<.15,.35,-8> .225,<.205,-0.05,-7.5> .3,<0.215,-0.15,-7.25> .4,<.225,.1,-7> .5,<0,.25,-6.75> .775,<-.475,.275,-5.5> .9,<-.133,.2,-5> .95,<-.1,.125,-4.75> 1,<-.05,0,-4.5> 1.1,<-.025,0,-4> } #declare CamSup= spline { cubic_spline 0,<0,1,0> .067,<.075,.9,-.0125> .1,<.1,.9,-.025> .2,<.075,.925,-.095> .275,<.1,.9,-.133> .325,<-.125,.875,-.1> .5,<0,1,0> .725,<-.1,.875,.1> .775,<.2,.75,.25> .9,<-.075,.867,0> .975,<.025,.9,.025> 1,<0,1,0> } #switch (Part) #case (1) //sphere{<0.2525,0.225,-9.72>,0.01 pigment{red 1}} // special location rock formation /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ //+<.75,.1,.5> //<.075*_mCs_,-.19+(.189*_mCs_),1> //rotate <2.5*_mCo_,(10-(10*_mCb_))*_mCo_,-15*_mCo12_*_mCw_> //translate <-.075*_mCs_,.425-(.405*_mCs_),-6+(1*_mCd_)> //<.5*_mCo_,.425+(.1*_mCo_),-9+(3*clock)> #declare Tracking=clock; camera { #switch (Tracking) #range (0,.05) location CamSpos (_mCs_)//+<-.01,.0015,-.0161> right x*(image_width/image_height) up y*1 sky CamSup (_mCs_) angle 67*CamZ look_at CamSpnt (_mCs_)//+<0,-.075,0> #break #range (.05,.15) location CamSpos (_mCs_)//+<-.018,.0015,-.0161> right x*(image_width/image_height) up y*1 sky CamSup (_mCs_) angle 67*CamZ look_at CamSpnt (_mCs_)//+<1,-.075,-.5> #break #range (.15,.333) location CamSpos (_mCs_)//+<-.01,.0015,-.0161> right x*(image_width/image_height) up y*1 sky CamSup (_mCs_) angle 67*CamZ look_at CamSpnt (_mCs_)//+<0,-.025,0> #break #range (.333,.667) location CamSpos (_mCs_)//+<-.018,.0015,-.0161> right x*(image_width/image_height) up y*1 sky CamSup (_mCs_) angle 67*CamZ look_at CamSpnt (_mCs_)//+<1,-.05,-.67> #break #range (.667,.75) location CamSpos (_mCs_)//+<-.01,.0015,-.0161> right x*(image_width/image_height) up y*1 sky CamSup (_mCs_) angle 67*CamZ look_at CamSpnt (_mCs_)//+<0,-.075,0> #break #range (.75,.925) location CamSpos (_mCs_)//+<-.018,.0015,-.0161> right x*(image_width/image_height) up y*1 sky CamSup (_mCs_) angle 67*CamZ look_at CamSpnt (_mCs_)//+<1,-.075,-.5> #break #range (.925,1) location CamSpos (_mCs_)//+<-.01,.0015,-.0161> right x*(image_width/image_height) up y*1 sky CamSup (_mCs_) angle 67*CamZ look_at CamSpnt (_mCs_)//+<0,-.075,0> #break #end } // camera #break #case (2) // Part 2 #declare clock_type="O" #declare clock_repeat=1; #include "clockmod.inc" #declare _mCo_=0;//mclock; #if (clock<=.5) #declare clock_type="O" #declare clock_repeat=1; #declare clock_start=0; #declare clock_finish=.5; #include "clockmod.inc" #declare _mCo12_=0;//mclock; #else #declare clock_type="O" #declare clock_repeat=1; #declare clock_start=.5; #declare clock_finish=1; #include "clockmod.inc" #declare _mCo12_=0;//-mclock; #end #declare clock_type="B" #declare clock_repeat=2; #include "clockmod.inc" #declare _mCb_=1;//1-mclock; #declare clock_type="W" // zero one zero #declare clock_repeat=2; #include "clockmod.inc" #declare _mCw_=mclock; #declare clock_type="D" #declare clock_repeat=1; #include "clockmod.inc" #declare _mCd_=mclock; camera { location <-.1,.0175+(.0125*_mCd_),-4.933> right x*1.66667 up y*1 //sky CamSup (_mCs_) angle 67*CamZ look_at <-.0125+(.0025*_mCd_),-.028-(.006*_mCd_),-5> } #break #end // sunlight and skylight light_source {<-500,500,333>, srgb <1,1,1>//<1.75,1.67,1.5> media_attenuation off} //light_source {<0,100,0> rgb <.0125,.05,.15>*1.5 shadowless} /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ // slope dependant texturing #declare Snow= texture {pigment {rgb <.96,.97,.99>*1.01} normal {wrinkles .4 ramp_wave turbulence .3 scale .039} finish {ambient .35 emission 0.15 diffuse .8425 specular .25 roughness .01 phong .1 phong_size 12} } #declare Snow2= texture {pigment {rgb <.98,.97,.96>} normal {wrinkles .3 ramp_wave turbulence .25 scale .036} finish {ambient .325 emission 0.1 diffuse .84 specular .3 roughness .025 phong .1 phong_size 17} } #declare Rock= texture {pigment {crackle turbulence .2 color_map { [0 color rgb <.75,.75,.75>] [1 color rgb <.67,.67,.67>*.7] }} normal {crackle 1.6 turbulence .2} finish {ambient .125 diffuse .3 specular .05 roughness .6} scale .016 } #declare Rock2= texture {pigment {crackle turbulence .4 color_map { [0 color rgb <.8,.775,.75>] [1 color rgb <.75,.7,.67>*.6] }} normal {crackle 1.9 turbulence .4} finish {ambient .15 diffuse .25 specular .05 roughness .6} scale .018 } #declare Dirt= texture {pigment {crackle turbulence .5 color_map { [0 color rgb <.6,.5,.4>*.8] [1 color rgb <.625,.525,.45>] }} normal {crackle 1.5 turbulence .5} finish {ambient .2 diffuse .7 specular .075 roughness .1} scale .009 } #declare Dirt2= texture {pigment {spotted turbulence .5 color_map { [0 color rgb <.5,.475,.35>*1.67] [1 color rgb <.55,.525,.4>*1.33] }} normal {spotted .25 turbulence .5} finish {ambient .2 diffuse .67 specular .075 roughness .1} scale .007 } #declare Trees= texture {pigment {bumps turbulence .6 color_map { [.3 color rgb <.15,.425,.4>] [.5 color rgb <.3,.5,.425>] }} normal {bumps 1.3 turbulence .6} finish {ambient .125 diffuse .6 specular .1 roughness .3} scale .003 } #declare Trees2= texture {pigment {bumps turbulence .7 color_map { [.3 color rgb <.25,.6,.3>] [.5 color rgb <.375,.67,.2>] }} normal {bumps 1.2 turbulence .7} finish {ambient .15 diffuse .7 specular .15 roughness .2} scale .00275 } #declare Grass= texture {pigment {dents turbulence .3 color_map { [0 color rgb <.4,.8,.3>] [1 color rgb <.35,.65,.25>] }} normal {dents .6 turbulence .3} finish {ambient .175 diffuse .8 specular .075 roughness .075} scale .00225 } #declare Grass2= texture {pigment {bozo turbulence .3 color_map { [0 color rgb <.75,.67,.2>*1.3] [1 color rgb <.5,.45,.15>*1.2] }} normal {bozo .6 turbulence .3} finish {ambient .175 diffuse .8 specular .075 roughness .075} scale .002 } #declare W1= texture {pigment {ripples phase clock turbulence .5-(.25*_Cw_) frequency 3 color_map { [0 color rgbf <.5,.5+(.25*_Cw_),.5+(.15*_Cw_),.0125+(.775*_Cw_)>*(1.5-(1*_Cw_))] [1 color rgbf <.5,.5+(.25*_Cw_),.5+(.15*_Cw_),.0125+(.775*_Cw_)>*(2.5-(2*_Cw_))] }scale .01} normal {ripples .05-(.033*_Cw_) phase clock turbulence .75-(.25*_Cw_) scale .005-(.00125*_Cw_) scallop_wave} finish {ambient .25-(.2*_Cw_) diffuse 1-(.75*_Cw_) specular .75 roughness .005 phong .075 phong_size 10 reflection { <.03,.033,.036>*(10*_Cw_), <.09,.093,.096>*(10*_Cw_) fresnel falloff 1 //reflection_type 0 reflection_min <.03,.033,.036>*(10*_Cw_) reflection_max <.09,.093,.096>*(10*_Cw_) reflection_falloff 1 //reflection_exponent .5 reflection_blur .0075 reflection_samples 10 } conserve_energy} scale .125 translate <-.05,.015,-5+(.05*clock)> } #declare W2= texture {pigment {crackle turbulence .5-(.25*_Cw_) color_map { [0 color rgbf <.5,.5+(.25*_Cw_),.5+(.15*_Cw_),.0125+(.775*_Cw_)>*(1.5-(1*_Cw_))] [1 color rgbf <.5,.5+(.25*_Cw_),.5+(.15*_Cw_),.0125+(.775*_Cw_)>*(2.5-(2*_Cw_))] }scale .05} normal {bozo .067-(.05*_Cw_) phase clock turbulence .25-(.25*_Cw_) scale .005-(.00125*_Cw_) scallop_wave} finish {ambient .25-(.2*_Cw_) diffuse 1-(.75*_Cw_) specular .75 roughness .005 phong .075 phong_size 10 reflection { <.03,.033,.036>*(10*_Cw_), <.09,.093,.096>*(10*_Cw_) fresnel falloff 1 //reflection_type 0 reflection_min <.03,.033,.036>*(10*_Cw_) reflection_max <.09,.093,.096>*(10*_Cw_) reflection_falloff 1 //reflection_exponent .5 reflection_blur .0075 reflection_samples 10 } conserve_energy} scale .25 // translate <-.05,.015,-5+(.05*clock)> } #declare W3= texture {pigment {crackle turbulence .5-(.25*_Cw_) color_map { [0 color rgbf <.5,.5+(.25*_Cw_),.5+(.15*_Cw_),.0125+(.775*_Cw_)>*(1.5-(1*_Cw_))] [1 color rgbf <.5,.5+(.25*_Cw_),.5+(.15*_Cw_),.0125+(.775*_Cw_)>*(2.5-(2*_Cw_))] }scale .005} normal {wrinkles .075-(.067*_Cw_) phase clock turbulence .25-(.125*_Cw_) scale .0025-(.00125*_Cw_) triangle_wave} finish {ambient .25-(.2*_Cw_) diffuse 1-(.75*_Cw_) specular .75 roughness .005 phong .075 phong_size 10 reflection { <.03,.033,.036>*(10*_Cw_), <.09,.093,.096>*(10*_Cw_) fresnel falloff 1 //reflection_type 0 reflection_min <.03,.033,.036>*(10*_Cw_) reflection_max <.09,.093,.096>*(10*_Cw_) reflection_falloff 1 //reflection_exponent .5 reflection_blur .0075 reflection_samples 10 } conserve_energy} scale .5 // translate <-.05,.015,-5+(.05*clock)> } /* #declare Water= material { texture {onion turbulence .001 frequency 1 texture_map { [0 W1] [.0067+(.0033*_mCo_) W2] [.01+(.005*_mCo_) W3] }} interior {fade_distance .01 fade_power 1000 fade_color <.5,.6,.8>} } */ #declare Water= material { texture {bozo turbulence 1.5 frequency 1 texture_map { [.15 W1] [.2+(.0033*_mCo_) W2] [.4+(.0033*_mCo_) W2] [.45+(.005*_mCo_) W3] [1+(.005*_mCo_) W3] } scale .125} interior {fade_distance .01 fade_power 1000 fade_color <.5,.6,.8>*.5} } #declare TerrainTex1= texture { slope //-y, y, <0,.25>, <0,1> { <0.25,1,-0.25>, 0, 0.5 altitude <0,1,0>, -1, 1 } texture_map { [.0225 Dirt2] [.03-(.05*_C_) Grass] [.035-(.01*_C_) Trees2] [.04+(.133*_C_) Trees] [.05+(.149*_C_) Trees2] [.07+(.133*_C_) Grass2] [.1+(.199*_C_) Dirt2] [.15+(.15*_C_) Dirt] [.199+(.2*_C_) Rock2] [.2+(.55*_C_) Rock2] [.25+(.445*_C_) Snow2] [.425+(.2725*_C_) Snow] [.925-(.2225*_C_) Snow] [.933-(.15*_C_) Rock] } //rotate -5*z } #declare TerrainTex2= texture { pigment {rgb<1,0,0>} /* slope -y, y, <0,.25>, <0,1> frequency -1 texture_map { [.0225 Dirt2] [.03-(.05*_C_) Grass] [.035-(.01*_C_) Trees2] [.04+(.133*_C_) Trees] [.05+(.149*_C_) Trees2] [.1+(.199*_C_) Dirt2] [.15+(.15*_C_) Dirt] [.199+(.2*_C_) Rock2] [.2+(.55*_C_) Rock2] [.25+(.445*_C_) Snow2] [.425+(.2725*_C_) Snow] [.925-(.2225*_C_) Snow] [.95-(.15*_C_) Rock] } */ } #include "functions.inc" #declare H = .3; // roughening<>smoothing #declare Lacunarity = 4; // roughening<>smoothing #declare Octaves = 6; // smoothing<>roughening #declare Offset = .45; // height #declare Gain= 1.9; // smoothing<>roughening #declare Noise= 2; // noise type #declare F0=function{f_ridged_mf(x,y,z,H,Lacunarity,Octaves,Offset,Gain,Noise) //"ridgedmf", } #declare Fs=function{pigment {spotted turbulence .5 color_map {[0 color rgb .67][1 color rgb .75]} frequency 1.1 scale .03} } #if (frame_number>195&frame_number<205) #declare Grad=20; #declare Accu=0.001; #else #declare Grad=10; #declare Accu=0.002; #end isosurface { function {y-(F0(x,y/1.5,z)*(f_noise3d(x*.1,y*.125,z*.1)/.333))*(Fs(x,y,z).gray)} //method 2 max_gradient Grad //evaluate // eval accuracy Accu //max_trace 15 //all_intersections //normal on contained_by{box{<-12, 0, -12>, <12, .45, 12>}} texture {TerrainTex1 scale <1,.99,1> translate -.01*y} /* texture { pigment {gradient y color_map { [0 color rgb<.5,.45,.35>] [1 color rgb<.75,.67,.5>] }} } texture {gradient x texture_map { [0 TerrainTex1] [.1 TerrainTex2] } ramp_wave} } */ } /* isosurface { function {y-F0(x,0,z)} method 2 eval accuracy 0.0001 normal on contained_by{box{<-12, 0, -12>, <12, 2, 12>}} pigment {color rgb<.97,.98,.99>} finish {ambient .25 diffuse .5 specular .05 roughness .1 phong .5 phong_size 200} scale <1,.9,1> translate .025*y } */ //background {color red 0.2 green 0.6 blue 0.8} /* sky_sphere { pigment {gradient y color_map { [0 color rgb<.3,.55,1>*1.1] [.125 color rgb<.675,.725,.775>*1.3] [.133 color rgb<.3,.5,.9>*1.2] [.2 color rgb<.33,.4,.8>*1.1] [.5 color rgb<.2,.3,.67>] } turbulence .01 scale <.1,1,.1>} } fog { fog_type 2 distance 1.5//+(.75*_mCd_) color rgb <.4,.5,.6>*1.67 fog_alt .1125 fog_offset .015 } */ //plane {y,.015 // clipped_by {box {<-12,.01,-12>,<12,.02,12>}} box {<-12,-.001,-12>,<12,.015,12> material {Water} } #declare Clouds= box { <-3000,40,-3000>/100 <3000,80,3000>/100 material { texture { pigment { rgbf 1 } } interior { media { absorption <.1,.125,.1125>*0.3 emission <0.11,0.1,0.11>*0.1 scattering {5, 0.05 extinction .9 eccentricity 0.2} method 3//2 //intervals 2 samples 10,10//9,9 // aa_level 3 jitter 0.4 density { wrinkles //octaves 2 //lambda 1.5 //omega .5 turbulence .1 color_map{ [0.0 rgb 0] [0.6 rgb 0] [0.625 rgb 100] [1.0 rgb <1.025,1.02,1.0225>*100 ] } // translate <0,1.5,0> scale <25,25,25>*.0333 } } } } hollow scale 0.9 rotate 5*x } object {Clouds translate <-clock*2,0,-clock*0.5>} fog { fog_type 2 distance 20 fog_offset 0.01 fog_alt 0.06 color rgb <0.9,0.7,0.67> } fog { fog_type 1 distance 40 color rgb <0.333,0.6,0.99>//*1.25 } plane {y,0 pigment {rgb 0}} sphere {0,25 pigment {rgb 0} hollow no_shadow} /* //cone {<10000,20000,40000>*1.01,250,<0,5,0>,10000 hollow // pigment {rgbf 1} finish {specular .5 roughness .005} //} //sphere {<10000,20000,40000>*1.04,750 pigment {rgb <1,.95,.5>} finish {ambient 1}} light_source { <10000,20000,40000> color rgb <1,0.94,0.9>*1.5 media_attenuation on media_interaction on } */ // Flying Vehicle #if (Part=2) #declare clock_type="D" // zero one #declare clock_combine="W" #declare clock_repeat=1; #declare clock_start=0; #declare clock_finish=.05; #include "clockmod.inc" #declare _mCc_=mclock; #declare _CtLb_=_mCw_; #declare _CtRb_=_mCw_; #declare _CtLf_=_mCw_; #declare _CtRf_=_mCw_; #declare WheelLF= union { torus {.2,.1 pigment {rgb .1} finish {ambient 0 diffuse .4 specular .1 roughness .1}} torus {.033,.077 pigment {rgb .9}} rotate 90*z translate <-.5,-.41+(.35*(1-_mCc_)),.75>} #declare WheelRF= union { torus {.2,.1 pigment {rgb .1} finish {ambient 0 diffuse .4 specular .1 roughness .1}} torus {.033,.077 pigment {rgb .9}} rotate 90*z translate <.5,-.41+(.35*(1-_mCc_)),.75>} #declare WheelB= union { torus {.2,.1 pigment {rgb .1} finish {ambient 0 diffuse .4 specular .1 roughness .1}} torus {.033,.077 pigment {rgb .9}} rotate 90*z translate <0,-.36+(.3*(1-_mCc_)),-.75>} #declare WheelWellLF= torus {.1,.16 rotate 90*z translate <-.55,-.41+(.35*(1-_mCc_)),.4>} #declare WheelWellRF= torus {.1,.16 rotate 90*z translate <.55,-.41+(.35*(1-_mCc_)),.4>} #declare WheelWellB= torus {.1,.16 rotate 90*z translate <0,-.39+(.2*(1-_mCc_)),-.4>} #declare Et= union {union { sphere {0,1 scale <.2125,.2125,.33> translate -.45*z} //motion_blur { disc {-.5*z,z,.6,.2 pigment {radial frequency 8 color_map { [.25 color rgbf 1] [.25 color rgb .8] [.75 color rgb .8] [.75 color rgbf 1] } rotate 90*x} normal {radial .5 frequency 8 sine_wave rotate 90*x rotate 5*z} rotate -360*clock*z } //} // blur torus {.55,.1 scale <1,.75,1> rotate 90*x clipped_by {plane {z,0}} translate -.725*z} torus {.45,.1 scale <1,.75,1> rotate 90*x clipped_by {plane {-z,0}} translate .8*z} texture {pigment {rgb<.8,.825,.85>}} texture { pigment {gradient z color_map { [0 color rgbf .99] [.75 color rgbf .67] [1 color rgbf .1] }scale 2 translate -1*z} finish {ambient .05 diffuse .3 specular .3 roughness .1 phong .9 phong_size 270 metallic 1 brilliance 3 reflection { 0.45,0.9 metallic fresnel falloff 1 //reflect_metallic //reflection_type 0 reflection_min .45 reflection_max .9 reflection_falloff 1 //reflection_exponent .9 } conserve_energy} } } difference { sphere {0,1} cone {-z,.7,z,.5} //torus {.7,.125 scale <1,.75,1> rotate 90*x clipped_by {plane {z,0}} translate -.85*z inverse} //torus {.5,.125 scale <1,.75,1> rotate 90*x clipped_by {plane {-z,0}} translate .825*z inverse} texture { pigment {gradient z color_map { [.15 color rgb<.75,.5,.25>*1.25] [.15 color rgb<.75,.75,.75>*1.125] [.85 color rgb<.75,.75,.75>*1.125] [.85 color rgb<.75,.5,.25>*1.25] }ramp_wave scale 1.6 translate .8*z} normal {gradient z .15 frequency 2 ramp_wave scale 2.25 translate 1.675*z} finish {ambient .05 diffuse .3 specular .3 roughness .1 phong .9 phong_size 270 metallic 1 brilliance 3 reflection { 0.45,0.9 metallic fresnel //reflect_metallic //reflection_type 0 reflection_min .45 reflection_max .9 reflection_falloff 1 //reflection_exponent .9 } conserve_energy} } texture {pigment {gradient z color_map { [0 color rgbf .99] [.75 color rgbf .67] [1 color rgbf .1] }scale 2 translate -1*z} normal {radial .5 frequency 6 rotate 90*x scallop_wave} finish {ambient .05 diffuse .3 specular .3 roughness .1 phong .9 phong_size 270 metallic 1 brilliance 3 reflection { 0.045,0.09 metallic fresnel //reflect_metallic //reflection_type 0 reflection_min .045 reflection_max .09 reflection_falloff 1 //reflection_exponent .9 } conserve_energy} } } scale <.2,.2,.4>*.001125 } #declare Body= union { difference { sphere {0,1} union { sphere {0,1 scale <.825,.8125,.925> translate .125*y} sphere {0,.75 scale <.75,1.25,.75> translate <0,.75,.25>} sphere {0,.75 scale <.15,.75,2> translate <-.95,.125,0>} sphere {0,.75 scale <.15,.75,2> translate <.95,.125,0>} sphere {0,1 scale <1.5,2.25,2> translate <0,1.5,.25> inverse} box {<-.05,.5,0>,<-.67,-.25,1.125> pigment {rgb<1.25,.5,.25>}} box {<.05,.5,0>,<.67,-.25,1.125> pigment {rgb<1.25,.5,.25>}} object {WheelWellLF} object {WheelWellRF} object {WheelWellB} texture { pigment {rgb<.75,.25,.125>} finish {ambient .125 diffuse .333 specular .4 roughness .08 phong .8 phong_size 250 metallic 1 brilliance 2 reflection { 0.3,0.7 metallic fresnel falloff 2 //reflect_metallic //reflection_type 0 reflection_min .3 reflection_max .7 reflection_falloff 2 //reflection_exponent .7 } conserve_energy} } } scale <.0016,.0012,.0032>*.5 // 8W by 16L by 6H (feet) hollow } // lower canopy union { sphere {0,.5} sphere {0,.4975} clipped_by {plane {y,.25} plane {-z,-.33 rotate -15*x}} texture { pigment {rgbft<.9,.97,.94,.6,.3>*1.05} normal {gradient x*y .01 scale .01} finish {ambient 0 diffuse .5 specular .9 roughness .001 phong .09 phong_size .1 reflection { 0.025,0.125 fresnel //reflection_type 0 reflection_min .025 reflection_max .125 } conserve_energy}} interior_texture { pigment {rgbft<.9,.97,.94,.6,.3>*1.05} normal {gradient x*y .01 scale .01} finish {ambient 0 diffuse .5 specular .9 roughness .001 phong .09 phong_size .1 //reflection_type 0 reflection_min .025 reflection_max .125 conserve_energy}} // interior {ior 1.485} scale <.0016,.0012,.0032>*.99 // <.00175,.001,.00315> // *.867 translate <0,.07,.2>*.001 hollow } object {WheelLF scale .0009} object {WheelRF scale .0009} object {WheelB scale .0009} } #declare FlyCar= union {union { // body difference { object {Body} box {<-.75,-.3,.5>,<.75,.6,1> scale <.0016,.0012,.0032>*.5} } difference { object {Body} box {<-.75,-.3,.5>,<.75,.6,1> scale <.0016,.0012,.0032>*.5 inverse} translate <0,-.00015,-.00015> rotate -45*_mCc_*x translate <0,.00015,.00015> // *(1-_mCc_) } // upper canopy union {union { sphere {0,.5} sphere {0,.499} clipped_by {plane {-y,-.25}}} torus {.425,.0065 pigment {rgb .9} translate .275*y} scale <.75,1,.75> translate <0,.125,.25> texture { pigment {rgbft<.97,.92,.86,.7,.33>} normal {gradient x*y .01 scale .01} finish {ambient 0 diffuse .5 specular .9 roughness .001 phong .09 phong_size .1 reflection { 0.025,0.125 //reflection_type 0 reflection_min .025 reflection_max .125 } conserve_energy}} interior_texture { pigment {rgbft<.97,.92,.86,.7,.33>} normal {gradient x*y .01 scale .01} finish {ambient 0 diffuse .5 specular .9 roughness .001 phong .09 phong_size .1 reflection { 0.025,0.125 //reflection_type 0 reflection_min .025 reflection_max .125 } conserve_energy}} // interior {ior 1.485} rotate 18*x scale <.0016,.0012,.00325>*.9 translate <0,.15,-.63>*.001 translate <0,-.15,.35>*.001 rotate -32*_mCc_*x translate <0,.15,-.35>*.001 hollow } // wings box {-1,1 rotate 45*y rotate 45*x rotate 90*x clipped_by {box {-1,1 scale <.3,1.75,1.75> inverse}} scale <1.25,.05,.33>*.001125 translate <0,.000425,.0001>} box {-1,1 rotate 45*y rotate 45*x rotate 90*x scale <1.125,.05,.33>*.00075 translate <0,.00067,-.00175>} box {-1,1 rotate 45*y rotate 45*x rotate 90*z scale <.075,.35,.3>*.00075 translate <0,.0003,-.0015>} texture { pigment {rgb<1,.25,.125>} finish {ambient .125 diffuse .333 specular .4 roughness .08 phong .8 phong_size 250 metallic 1 brilliance 2 reflection { 0.3,0.7 metallic fresnel falloff 2 //reflect_metallic //reflection_type 0 reflection_min .3 reflection_max .7 reflection_falloff 2 //reflection_exponent .7 } conserve_energy} } } // engines object {Et rotate (95+(85*_CtLb_))*x translate <-.93,.15,-.775>*.001 } object {Et rotate (95+(85*_CtRb_))*x translate <.93,.15,-.775>*.001 } object {Et rotate (85+(90*_CtLf_))*x translate <-.93,.15,.775>*.001 } object {Et rotate (85+(90*_CtRf_))*x translate <.93,.15,.775>*.001 } #if (clock<.1) sphere {0,.003 hollow pigment {rgbf 1} interior {media {method 3 intervals 2 samples 1,2 absorption <.3,.35,.35> scattering {1,<1,.9,.6>*50} density {spherical turbulence .5 density_map { [0 rgb 0] [.7 rgb 2] [.9 rgb 10] } scale .003} } } scale <1,.2+(.47*clock),1.25>*(.5+(.5*clock)) translate <0,-.001-(-.0133*clock),-.0005-(.01*clock)> } #end // scale 6789 // rotate 180*y translate 3.6*y } // person scale #declare Person= union { sphere {0,1 pigment {gradient y color_map { [.4 color rgb<1,.8,.65>] [.45 color rgb<.45,.35,.25>] [.5 color rgb<.3,.25,.2>] }ramp_wave scale 1.75 rotate 30*x translate -.75*y} scale <.45,.67,.5> translate 5.67*y} cylinder {.5*y,y,1 scale <1.25,5,.5>} cylinder {0,-.5*z,1 scale <.45,.45,5> translate <-.75,2.5,0>} cylinder {0,-.5*z,1 scale <.45,.45,5> translate <.75,2.5,0>} cylinder {0,.5*y,1 scale <.35,5,.35> rotate 35*x translate <-.67,0,-3.75>} cylinder {0,.5*y,1 scale <.35,5,.35> rotate 35*x translate <.67,0,-3.75>} cylinder {0,-.33*z,1 scale <.225,.225,5> translate <-.925,3.25,-1>} cylinder {0,-.33*z,1 scale <.225,.225,5> translate <.925,3.25,-1>} cylinder {0,.4*y,1 scale <.25,5,.25> rotate 35*x translate <-.95,3.25,-1>} cylinder {0,.4*y,1 scale <.25,5,.25> rotate 35*x translate <.95,3.25,-1>} pigment {rgb <.5,.75,.9>} rotate 180*y translate -3.6*y } #declare FC= union { object {FlyCar} object {Person translate <1.5,1.4,2.5> scale 1/6789 } object {Person translate <-1.5,1.4,2.5> scale 1/6789 } //scale 2 rotate -90*y rotate CamSup (_mCs_)*<100,0,25> rotate 90*y translate CamSpos (_mCs_)+<-.01,.00099,-.0167>//+<0,-.0005,-.0006> } object {FC} #end // Part 2