//#version 3.5 //#declare Modelling = on; #declare Qual = on; // low quality: insert +q1 #declare Detail = on; #declare Reflections = on; #declare Radiosity = off; #declare HiRad = on; #declare Lighting = on; #declare showBody = on; #declare showWheels = on; #declare showWells = on; #declare showFins = on; #declare showTransparencies = on; #declare showLights = on; #declare showMirrors = on; #declare showWindows = on; #declare showHoles = on; #declare TempLight = off; //Library_Path=C:\Windows\Fonts // Add to pov.ini //+qr +fn //+fn //(right-click ) - renders to .png !!! #include "colors.inc" //#include "Views.inc" global_settings { assumed_gamma 1.0 #if (Qual = off) max_trace_level 3 #end } #if (Radiosity) // radiosity (global illumination) settings // only used if '+qr' option is specified global_settings { radiosity { pretrace_start 0.08 // start pretrace at this size pretrace_end 0.04 // end pretrace at this size #if(HiRad) count 50 // higher -> higher quality (1..1600) [35] error_bound .5 // higher -> smoother, less accurate [1.8] recursion_limit 5 // how much interreflections are calculated (1..5+) [3] normal on // take surface normals into account [off] media on // take media into account [off] #else count 35 // higher -> higher quality (1..1600) [35] error_bound 1.8 // higher -> smoother, less accurate [1.8] recursion_limit 3 // how much interreflections are calculated (1..5+) [3] #end nearest_count 6 // higher -> higher quality (1..10) [5] low_error_factor .5 // reduce error_bound during last pretrace step gray_threshold 0.0 // increase for weakening colors (0..1) [0] minimum_reuse 0.015 // reuse of old radiosity samples [0.015] brightness 1 // brightness of radiosity effects (0..1) [1] adc_bailout 0.01/2 //save_file "file_name" // save radiosity data //load_file "file_name" // load saved radiosity data //always_sample off // turn sampling in final trace off [on] //max_sample 1.0 // maximum brightness of samples } } #end // ---------------------------------------- // camera { location <0.0, 5, -5> direction 1.5*z right 4/3*x look_at <0.0, 0.0, 20> } #if (TempLight) // create a regular point light source light_source { 0*x // light's position (translated below) color rgb <1,1,1> // light's color translate <0, 1, -20> } #end sky_sphere { pigment { gradient y // turbulence 0.01 color_map { [0.0 color rgb<.6,.8,.9> ][.1 color rgb<.3,.7,.9>] [1.0 color blue 0.6] } } } plane { y, 1000 pigment { bozo scale 5000 turbulence 1 color_map { [0.0 color rgbt <1,1,1,1>][0.5 color rgbt <1,1,1,1>][1.0 color rgbt <1,2,3,0>] } } //normal{bozo turbulence 1} hollow on } #if (Qual) fog // far { fog_type 2 distance 7000 color rgb <.9,.9,.9> fog_offset 1 fog_alt 100 //turbulence 0.8 } /* light_source { // sunlight 0,<1.125,1.125,.75> looks_like {disc {0,y,1,0 pigment {onion color_map { [.75 rgb <1.125,1.125,.75>*3] [1 rgbt 1] }} finish {ambient SLC*2} scale 20 hollow}} // media_attenuation on // slow translate 777*y rotate <-5,0,-20> } */ // An area light (creates soft shadows) // WARNING: This special light can significantly slow down rendering times! light_source { 0*x // light's position (translated below) color rgb <1.125,1.125,.75>//<1.7,1.6,1.5> // light's color area_light <8, 0, 0> <0, 0, 8> // lights spread out across this distance (x * z) 4, 4 // total number of lights in grid (4x*4z = 16 lights) adaptive 0 // 0,1,2,3... jitter // adds random softening of light circular // make the shape of the light circular orient // orient light ///////////////////////// looks_like {disc {0,y,1,0 pigment {onion color_map { [.75 rgb <1.125,1.125,.75>*3] [1 rgbt 1] }} finish {ambient <1.125,1.125,.75>*2} scale 20 hollow}} // media_attenuation on // slow ///////////////////////////// translate <-1000, 3000, -1000> // position of light } #declare Salt = texture { #if (Radiosity) pigment{color rgb<1,1,.9>} #else pigment { color rgb 1 } #end finish{/*ambient .2*/ #if (Reflections)reflection .05 #end /*metallic on*/ roughness 1} normal{crackle scale <.105,.1,.105>} } #declare Salty = texture { #if (Radiosity) pigment{color rgbf<1,1,.9,1>} #else pigment { color rgbf 1 } #end finish{ roughness 1} normal{crackle scale <.01,.001,.01>} } #else #declare Salt = texture { pigment { color rgb 1 }normal{crackle scale <.105,.1,.105>}} /*fog { fog_type 2 distance 7000 color rgb <.9,.9,.9> fog_offset 1 fog_alt 100 //turbulence 0.8 } */ light_source { 0*x // light's position (translated below) color rgb <2.2,2.1,2> // light's color translate <-1000, 3000, -1000> } #end // ---------------------------------------- plane { y, -1 texture {Salt} #if (Qual) texture {Salty}#end} #macro Cars (Colour, Angle, Position, Turn) #declare Rnd = seed (1029); #declare StrengthVal = 1.0; // (+ or -) strength of component's radiating density #declare RadiusVal = 1.0; // (0 < RadiusVal) outer sphere of influence on other components #declare Reflection = texture {pigment {color rgbt<0,0,0,1>}finish{reflection .2}}//texture{Reflection} #if (Colour = 1) // Magenta #if (Reflections)#declare Metallic = on; #end #declare Metallic1 = texture { // reflection {0.2,0.8 falloff 3} // REM variable reflection //pigment{color rgb <.2,0,.01>} pigment{color rgb <.5,0,.1,1>} #if (Qual) finish{reflection <.5,0,.1>/3 specular 5 metallic on phong 1} normal {crackle .01} #end //finish{reflection .1/*{<.1,.01,.05>,<.15,.05,.05> falloff 3}*/ specular 1 metallic on phong .2 ambient <.2,.1,.5>} } #declare Metallic2 = texture { // reflection {0.2,0.8 falloff 3} // REM variable reflection pigment{color rgbf <.5,0,.2,1>} #if (Qual) finish{ reflection .2 /*<.5,.01,.1>/3{<.15,.1,.05>,<.2,.15,.1> falloff 3}*/ specular .3 metallic off phong .1 } #end } // #declare Metallic = texture{texture { Metallic1} texture{ Metallic2}} #end #if (Colour = 2 ) // Teal #if (Reflections)#declare Metallic = on; #end #declare Metallic1 = texture { //reflection {0.2,0.8 falloff 3} // REM variable reflection pigment{color rgb <0,.1,.5>} #if (Qual) normal {crackle .01} finish{reflection {<.05,.05,.2>/2,<.05,.15,.2>falloff 3} specular 5 metallic on phong 1 ambient<.2,.05,.3>/3} #end } #declare Metallic2 = texture { //reflection {0.2,0.8 falloff 3} // REM variable reflection pigment{color rgbf <0,.4,.5,1.5>} #if (Qual) finish{reflection .2/*{<.05,.15,.2>/2,.15 falloff 3}*/ specular .3 phong .1 } #end } #end #ifndef (Metallic1) #declare Metallic1 = texture { // reflection {0.2,0.8 falloff 3} // REM variable reflection pigment{color rgb <.5,0,0>} #if (Reflections) finish{reflection {<.2,0,.1>,<.5,0,0> falloff 3} specular 1 metallic on phong .2 } #end } #end #ifndef (Metallic2) #declare Metallic2 = texture { // reflection {0.2,0.8 falloff 3} // REM variable reflection pigment{color rgbt <.5,0,.1,1>} #if (Reflections) finish{ reflection {<.2,.1,.2>,<.5,.2,.2> falloff 3} specular 1 metallic off phong .2 } #end } #end #ifndef (Metallic) // is texture metallic or not? #declare Metallic = off; #end #declare Logo = blob {threshold 1 sphere { 0,1.2 10 scale z *.1} cylinder { <0,1.2,2>,<0,0,-2>,.3 (-15) scale y*1 } cylinder { <0,1.2,2>,<0,0,-2>,.3 (-15) scale y*1 rotate z*120} cylinder { <0,1.2,2>,<0,0,-2>,.3 (-15) scale y*1 rotate z*240} pigment {color rgb .5} #if (Reflections)finish{reflection 1 }#end scale <1,.5,1>/4} #declare Mirror = intersection { blob { threshold 1 sphere {0,1,1 scale <.8,.5,1.5> translate <-1.8,.4,-4.3> } sphere {0,1,-1 scale <.2,2,.5> translate <-1.8,.1,-3.5> } //subtract ///////////////////////body threshold .5 sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <18,9,10> translate <2,-3,0> /*rotate z*5 scale y*1.2 */ } // main body sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <5,2,5.2> translate <3.5,-.5,0>} sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <4,1.5,6> translate <6.5,0,0>} sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <4,2,6> translate <7,-1,0>} sphere { <0, 0, 0>, StrengthVal,-1 scale <8,9,15> translate <10,-5,0>} //subtract //sphere { <0, 0, 0>, StrengthVal,-1 scale <5,9,3> rotate z*-30 translate <10,-5,0>} //subtract Rear //sphere { <0, 0, 0>, StrengthVal,-10 scale <.5,9,2.5> rotate z*-30 translate <5.7,-5,0>} //subtract Rear pressure outlet //cylinder { x,-x, StrengthVal,-5 scale <.1,9,2.5> rotate z*-30 translate <5.7,-5,0>} //subtract Rear pressure outlet sphere { <0, 0, 0>, StrengthVal,-1 scale <10,2,10> rotate <0,0,30> translate <-6.5,1,-2.5>} //subtract nose front sphere { <0, 0, 0>, StrengthVal,-1 scale <10,2,10> rotate <0,0,30> translate <-6.5,1,2.5>} //subtract sphere { <0, 0, 0>, StrengthVal,-1 scale <2,5,5> rotate <0,-15,0> translate <-8,1,-2.5>} //subtract nose bottom sphere { <0, 0, 0>, StrengthVal,-1 scale <2,5,5> rotate <0,15,0> translate <-8,1,2.5>} //subtract sphere { <0, 0, 0>, StrengthVal,-.1 scale <2,5,5> translate <-8.5,1,0>} //subtract sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <1.5,1.8,.8> rotate <0,15,0> translate <-3,-1,-3.0>} // nose sides sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <3,2,1.2> rotate <0,10,0> translate <-3.1,-1,-2.8>} sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <1.5,1.8,.8> rotate <0,-15,0> translate <-3,-1,3.0>} sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <3,2,1.2> rotate <0,-10,0> translate <-3.1,-1,2.8>} sphere { <0, 0, 0>, .5, -.5 scale <4,10,1.2> rotate <0,10,0> translate <-7,-2.5,3.8>} //nose side front subtract sphere { <0, 0, 0>, .5, -.5 scale <4,10,1.2> rotate <0,-10,0> translate <-7,-2.5,-3.8>} // " " " " sphere { <0, 0, 0>, StrengthVal, .1 scale <2,1,7> rotate z*10 scale y*1.2 translate <-5,-.6,0>} sphere { <0, 0, 0>, StrengthVal, 1.5 scale <3,.7,3> translate <-3.5,-1.8,0>} //sphere { <0, 0, 0>, StrengthVal, -1 scale <10,.3,3> translate <-10,-1.5,0>pigment{color rgb 0}} // front inlet //cylinder { y*.2,y*-.2,StrengthVal, -.5 scale <10,.2,2.5> rotate z*5 translate <-10,-1.9,0>pigment{color rgb 0}} // front inlet sphere { <0, 0, 0>, StrengthVal, -.5 scale <1,3,10> rotate y*15 translate <-7,-2.2,2.5>} // front sphere { <0, 0, 0>, StrengthVal, -.5 scale <1,3,10> rotate y*-15 translate <-7,-2.2,-2.5>} // front sphere { <0, 0, 0>, StrengthVal, -1 scale <20,1,10> translate <0,-2.7,0>} // bottom sphere { <0, 0, 0>, StrengthVal,-1 scale <8,19,2> translate <.5,-16.0,-5>} //subtract centre side sphere { <0, 0, 0>, StrengthVal,-1 scale <8,19,2> translate <.5,-16.0,5>} sphere { <0, 0, 0>, StrengthVal,-1 scale <8,19,2> /*rotate x*45*/ translate <-2.5,0.0,-5.5>} //subtract centre side sphere { <0, 0, 0>, StrengthVal,-1 scale <8,19,2> /* rotate x*-45*/ translate <-2.5,0,5.5>} ////////////////////////end Body } box { <0,-.5,-1>,<-0.7,1,1.0> translate <-1.8,.5,-3.9> pigment {color rgb .1} finish {reflection .9}} texture{ Metallic1} #if (Reflections) texture {Metallic2 } texture {Reflection} #end } #declare Cylinder = cylinder {z,-z,1 scale z*5} #declare TreadAngle = 0 #declare Deg = 5 #declare Cylinder = difference {cylinder {z,-z,1 scale<1.36,1.36,.12> } #while (TreadAngle <= 360) box{<-1,1,-1>,<1,0,1> scale <.02,1.5,1> rotate y*15 rotate z*TreadAngle} #declare TreadAngle=TreadAngle+Deg; #end } #declare Tread = union{ object{ Cylinder scale z*1 translate z*.6} object{ Cylinder scale z*-1 translate z*.5} object{ Cylinder scale z*1 translate z*.2} object{ Cylinder scale z*-1 translate z*-.2} object{ Cylinder scale z*1 translate z*-.5} object{ Cylinder scale z*-1 translate z*-.8} scale <.85,.85,.6>} #declare Wheel =union {difference{ union{blob{ cylinder { z*1,z*-1,2 10 scale z *.5} cylinder { z*3,z*-3,3 (-5)} cylinder { z*2,z*-2,1 (-10)} } #if (Detail) object {Tread} #end } cylinder {z,-z,.8 pigment {color rgb .5} finish{phong 2 specular 5 #if (Reflections)reflection 1 metallic 2 #end roughness 1 }} pigment {color rgb .07} finish {phong .1 specular.3 }// normal {gradient z frequency 5}//color_map [0 1][.1 ... } blob {threshold 1 cylinder { z*1,z*-1,1.2 10 scale z *.5} sphere { <0,0,-1>,1, -15} sphere { <0,0,1>,1, -20} cylinder { <0,2,2>,<0,0,-2>,.32 (-7) scale y*.8 } cylinder { <0,2,2>,<0,0,-2>,.32 (-7) scale y*.8 rotate z*120} cylinder { <0,2,2>,<0,0,-2>,.32 (-7) scale y*.8 rotate z*240} cylinder { <0,2,-.5>,<0,0,1>,.32 (-7) scale y*.8 } cylinder { <0,2,-.5>,<0,0,1>,.32 (-7) scale y*.8 rotate z*120} cylinder { <0,2,-.5>,<0,0,1>,.32 (-7) scale y*.8 rotate z*240} pigment {color rgb .5} finish{phong 2 specular 5 #if (Reflections)reflection 1 metallic 2 #end roughness 1 } } scale 1.2 } #declare CarBody= difference { // Body blob{ threshold .5 sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <18,9,10> translate <2,-3,0> /*rotate z*5 scale y*1.2 */ } // main body sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <5,2,5.2> translate <3.5,-.5,0>} sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <4,1.5,6> translate <6.5,0,0>} sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <4,2,6> translate <7,-1,0>} sphere { <0, 0, 0>, StrengthVal,-1 scale <8,9,15> translate <10,-5,0>} //subtract sphere { <0, 0, 0>, StrengthVal,-1 scale <5,9,3> rotate z*-30 translate <10,-5,0>} //subtract Rear //sphere { <0, 0, 0>, StrengthVal,-1 scale <5,9,3> rotate z*-30 translate <10,-5,0>} //subtract Rear cylinder { x,-x, StrengthVal,-5 scale <.1,9,2.5> rotate z*-30 translate <5.7,-5,0>} //subtract Rear pressure outlet sphere { <0, 0, 0>, StrengthVal,-1 scale <10,2,10> rotate <0,0,30> translate <-6.5,1,-2.5>} //subtract nose front sphere { <0, 0, 0>, StrengthVal,-1 scale <10,2,10> rotate <0,0,30> translate <-6.5,1,2.5>} //subtract sphere { <0, 0, 0>, StrengthVal,-1 scale <2,5,5> rotate <0,-15,0> translate <-8,1,-2.5>} //subtract nose bottom sphere { <0, 0, 0>, StrengthVal,-1 scale <2,5,5> rotate <0,15,0> translate <-8,1,2.5>} //subtract sphere { <0, 0, 0>, StrengthVal,-.1 scale <2,5,5> translate <-8.5,1,0>} //subtract sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <1.5,1.8,.8> rotate <0,15,0> translate <-3,-1,-3.0>} // nose sides sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <3,2,1.2> rotate <0,10,0> translate <-3.1,-1,-2.8>} sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <1.5,1.8,.8> rotate <0,-15,0> translate <-3,-1,3.0>} sphere { <0, 0, 0>, StrengthVal, RadiusVal scale <3,2,1.2> rotate <0,-10,0> translate <-3.1,-1,2.8>} sphere { <0, 0, 0>, .5, -.5 scale <4,10,1.2> rotate <0,10,0> translate <-7,-2.5,3.8>} //nose side front subtract sphere { <0, 0, 0>, .5, -.5 scale <4,10,1.2> rotate <0,-10,0> translate <-7,-2.5,-3.8>} // " " " " sphere { <0, 0, 0>, StrengthVal, .1 scale <2,1,7> rotate z*10 scale y*1.2 translate <-5,-.6,0>} sphere { <0, 0, 0>, StrengthVal, 1.5 scale <3,.7,3> translate <-3.5,-1.8,0>} //sphere { <0, 0, 0>, StrengthVal, -1 scale <10,.3,3> translate <-10,-1.5,0>pigment{color rgb 0}} // front inlet cylinder { y*.2,y*-.2,StrengthVal, -.5 scale <10,.2,2.5> rotate z*5 translate <-10,-1.9,0>pigment{color rgb 0}} // front inlet sphere { <0, 0, 0>, StrengthVal, -.5 scale <1,3,10> rotate y*15 translate <-7,-2.2,2.5>} // front sphere { <0, 0, 0>, StrengthVal, -.5 scale <1,3,10> rotate y*-15 translate <-7,-2.2,-2.5>} // front sphere { <0, 0, 0>, StrengthVal, -1 scale <20,1,10> translate <0,-2.7,0>} // bottom sphere { <0, 0, 0>, StrengthVal,-1 scale <8,19,2> translate <.5,-16.0,-5>} //subtract centre side sphere { <0, 0, 0>, StrengthVal,-1 scale <8,19,2> translate <.5,-16.0,5>} sphere { <0, 0, 0>, StrengthVal,-1 scale <8,19,2> /*rotate x*45*/ translate <-2.5,0.0,-5.5>} //subtract centre side sphere { <0, 0, 0>, StrengthVal,-1 scale <8,19,2> /* rotate x*-45*/ translate <-2.5,0,5.5>} //>>>>>>>>>>> DOORS & PANELS <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\\\\\\\\\\\\|||||||||||||||||||||// />>>>>>>>>>>>>>>>>>>>>>>>>>>>,<<<<<<<<<<<<<<<<<<<<<< #if (Detail) //DOORS //////////////////////////////////// cylinder{y,-y, StrengthVal, -1 scale <.03, .43, 10> rotate z*-30 translate <2.2,-.68,0>} // rear bottom cylinder{y,-y, StrengthVal, -1 scale <.03, .45, 10> /*rotate z**/ translate <2.6,.83,0>} // rear cylinder{x,-x, StrengthVal, -1 scale <.70, .03, 10> rotate z*5 translate <.79,-1.4,0>} //bottom //cylinder{y,-y, StrengthVal, -1 scale <.03, .43, 10> rotate z*30 translate <-1.5,-.8,0>} //front bottom #end ///_<_>_<_>_<_>_<_>/////// END OF DOORS & PANELS /////////////////////// >>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<, //<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> } plane {y, -2.0} // box { <-4,-.2,-3.8>,<6,-1.5,-7> rotate <0,0,5>} // original box { -1,1 scale <10,1.3,3.2>/2 translate<2,-.85,-5.4>rotate <0,0,5>} // // box { <-4,-.2,3.8>,<6,-1.5,7> rotate <0,0,5>} // original box { -1,1 scale <10,1.3,3.2>/2 translate<2,-.85,5.4> rotate <0,0,5>} } #declare CarFins=difference { // Wings blob{ threshold .5 cylinder { (y*.2),(y*-.2), StrengthVal, RadiusVal scale <7,4,9> rotate z*15 scale <3,1,1>translate <6,-1.1,0>} // scale <2,.9,.9> translate x*15 done cylinder { (y*.5),(y*-.5), StrengthVal, -10 scale <20,.6,2> translate <5,.8,0>} // tailfin sphere { <0, 0, 0>, StrengthVal,-10 scale <15,5,9> translate <-8,2,0>} //subtract curve cylinder { <0,.18,.5>,<0,-.18,-.5>, StrengthVal, -9 scale <5.5,1.6,1.0> translate <2,0,-3> pigment {color rgb 0}} // top inlet cylinder { <0,.18,-.5>,<0,-.18,.5>, StrengthVal, -9 scale <5.5,1.6,1.0> translate <2,0,3> pigment {color rgb 0}} // top inlet sphere { <0, 0, 0>, StrengthVal,-1 scale <5,15,15> rotate z*-15 translate <9,-7,0>} //subtract Rear sphere { <0, 0, 0>, StrengthVal,-1 scale <5,9,15> /*rotate z*-30*/ translate <10,-8,0>} //subtract Rear sphere { <0, 0, 0>, StrengthVal,-1 scale <10,15,15> translate <20,-7,0>} //subtract Rear excess //cylinder { <0,.2,1>,<0,-.2,-1>, StrengthVal, -.5 scale <5,5,2> translate <-1,-7,-6>} // side dent //cylinder { <0,.2,-1>,<0,-.2,1>, StrengthVal, -.5 scale <5,5,2> translate <-1,-7,6>} // side dent } plane {y, -2.0} // texture{Metallic1} // #if(Qual) texture {Metallic2} // #end } #declare Window1 = blob{threshold 1 sphere { <0, 0, 0>,1,2 scale <15,1.7,9> rotate z*7 translate <-2,.5,0>} sphere { <0, 0, 0>,1,1 scale <4,3,20> translate <-2.5,3,0>} sphere { <0, 0, 0>,1,-1 scale <11,5,20> translate <-8,0,0>} sphere { <0, 0, 0>,1,-1 scale <1,5,20> translate <3,-1,0>} // rear 'pillar' sphere { <0, 0, 0>,1,-.8 scale <2.5,.5,20> translate <2.5,2,0>} // roof //sphere { <0, 0, 0>,1,-1 scale <15,2,9> rotate z*7 translate <0,-.5,0>} // wing sphere { <0, 0, 0>,1,-1 scale <4,1,20> translate <3,0,0>} // wing cylinder { x*-10,x*10, 1, -1 scale<3,5,.3> rotate y*30 translate <-25,-1.15,16> }// front pillars cylinder { x*-10,x*10, 1, -1 scale<3,5,.3> rotate y*-30 translate <-25,-1.15,-16>} // front pillars sphere { <0, 0, 0>, StrengthVal, -10 scale <3,1.8,.8> rotate <0,15,0> translate <-3,-1,-3.0>} // nose sides sphere { <0, 0, 0>, StrengthVal, -10 scale <3,2,1.2> rotate <0,10,0> translate <-3.1,-1,-2.8>} sphere { <0, 0, 0>, StrengthVal, -10 scale <3,1.8,.8> rotate <0,-15,0> translate <-3,-1,3.0>} sphere { <0, 0, 0>, StrengthVal, -10 scale <3,2,1.2> rotate <0,-10,0> translate <-3.1,-1,2.8>} } #declare Window = blob{threshold 1 sphere { <0, 0, 0>,1,2 scale <15,1.7,9>*.99 rotate z*7 translate <-2,.51,0>} sphere { 0,1,-5 scale <1,10,10> translate x*9} sphere { <0, 0, 0>,1,1 scale <4,3,20>*.99 translate <-2.5,3,0>} sphere { <0, 0, 0>,1,-1 scale <11,5,20>*1.01 translate <-8,0,0>} sphere { <0, 0, 0>,1,-1 scale <1,5,20>*1.05 translate <3,-1,0>} // rear 'pillar' sphere { <0, 0, 0>,1,-.8 scale <2.5,.5,20>*1.03 translate <2.5,2,0>} // roof //sphere { <0, 0, 0>,1,-1 scale <15,2,9> rotate z*7 translate <0,-.5,0>} // wing sphere { <0, 0, 0>,1,-1 scale <4,1,20>*1.03 translate <3,0,0>} // wing cylinder { x*-10,x*10, 1, -1 scale<3,5,.3>*1.05 rotate y*30 translate <-25,-1.15,16> }// front pillars cylinder { x*-10,x*10, 1, -1 scale<3,5,.3>*1.05 rotate y*-30 translate <-25,-1.15,-16>} // front pillars sphere { <0, 0, 0>, StrengthVal, -10 scale <3,1.8,.8>*1.03 rotate <0,15,0> translate <-3,-1,-3.0>} // nose sides sphere { <0, 0, 0>, StrengthVal, -10 scale <3,2,1.2>*1.03 rotate <0,10,0> translate <-3.1,-1,-2.8>} sphere { <0, 0, 0>, StrengthVal, -10 scale <3,1.8,.8>*1.03 rotate <0,-15,0> translate <-3,-1,3.0>} sphere { <0, 0, 0>, StrengthVal, -10 scale <3,2,1.2>*1.03 rotate <0,-10,0> translate <-3.1,-1,2.8>} } #declare Rubber = difference { object {Window1} object {Window} } #declare frontlights = blob{threshold 1 sphere { <0, 0, 0>, StrengthVal, 20 scale <1,.2,.7> rotate x*10 translate <-6,-.6,-2.0>} // lights sphere { <0, 0, 0>, StrengthVal, 20 scale <1,.2,.7> rotate x*-10 translate <-6,-.6,2.0>} // lights sphere { <0, 0, 0>, StrengthVal, 1 scale <1,.2,.7> rotate x*10 translate <-6,-.7,-1.5>} // lights sphere { <0, 0, 0>, StrengthVal, 1 scale <1,.2,.7> rotate x*-10 translate <-6,-.7,1.5>} // lights } #declare fLightIn = texture {pigment { color rgbt <1,1,1,1>} normal {cells scale <1,.2,.1>} #if (Reflections)finish {reflection 2 }#end} #declare fLightOut = texture {pigment { color rgbt <1,1,1,.9>} #if(Reflections) finish {reflection .5 }#end} //#declare rLightIn = texture {pigment { color rgbf <1,0,0,.1>} normal {hexagon scale <1,.2,.1> rotate z*90} finish {reflection <2,.5,0> }} #declare rLightInRed = texture {pigment { color rgbf <1,0,0,.1>} normal {hexagon scale <1,.2,.1> rotate z*90} #if (Reflections)finish {reflection <1,0,0> }#end} #declare rLightInOrange = texture {pigment { color rgbf <1,.1,0,.1>} normal {hexagon scale <1,.2,.1> rotate z*90} #if (Reflections)finish {reflection <1,.5,0> }#end} #declare rLightInWhite = texture {pigment { color rgbf <.7,.7,.7,.1>} normal {hexagon scale <1,.2,.1> rotate z*90} #if (Reflections)finish {reflection 1 }#end} //#declare rLightOut = texture {pigment { color rgbf <1,0,0,.1>} finish {reflection <1,.1,0> }} #declare rLightOutRed = texture {pigment { color rgbf <1,0,0,.1>} #if(Reflections) finish {reflection <.2,0,0> }#end} #declare rLightOutOrange = texture {pigment { color rgbf <1,.1,0,.1,.1>} #if(Reflections) finish {reflection <.2,.01,0> }#end} #declare rLightOutWhite = texture {pigment { color rgbf <.7,.7,.7,.1>} #if(Reflections) finish {reflection .1 }#end} #declare RearLights = intersection { object{CarFins pigment { color rgbt <.1,.2,.3,.5>}#if (Reflections)finish {reflection.2 }#end} blob{threshold 1 sphere { <0, 0, 0>, StrengthVal, 20 scale <.3,1.4,1.8>/1.2 rotate <0,30,40> translate <8.5,.4,-3>} sphere { <0, 0, 0>, StrengthVal, 20 scale <.3,1.4,1.8>/1.2 rotate <0,-30,40> translate <8.5,.4,3>} } } #declare RLightCylRed = union{ cylinder{ -x,x,.6 scale x*20 translate <2.5,1.05,2.7> } cylinder{ -x,x,.6 scale x*20 translate <2.5,1.05,-2.7> } } #declare RLightCylOrange = union{ cylinder{ -x,x,1 scale x*20 translate <2.5,1.05,2.8> } cylinder{ -x,x,1 scale x*20 translate <2.5,1.05,-2.8> } } #declare RearLightRed = intersection { object{RearLights} object {RLightCylRed} #if (Qual) interior {ior 1.31} texture {rLightInRed} #end texture {rLightOutRed} } #declare RearLightWhite = difference { object{RearLights} object{RLightCylOrange} #if (Qual) interior {ior 1.31} texture {rLightInWhite} #end texture {rLightOutWhite} } #declare RearLightOrange = difference { object{RearLights} object{RearLightWhite} object{RearLightRed} #if (Qual) interior {ior 1.31} texture {rLightInOrange} #end texture {rLightOutOrange} } #declare RearLights1 = union { object{RearLightRed } object{RearLightWhite} object{RearLightOrange} } #declare Car = union { difference { union{ #if(showFins) difference { object{CarFins } #if(showLights+showHoles) object { RearLights1 pigment {color rgb 0} #if (Reflections) finish{ reflection .5 } #end } #end } #end #if(showLights) object{RearLights1} #end #if(showMirrors) object {Mirror scale z*-1} object {Mirror } #end ////////////////////////// #if(showBody) difference { object{CarBody } #if(showWindows+showHoles) object { Window1 pigment { color rgb <.5,.9,.9>} } #end #if(showLights+showHoles) object { frontlights pigment {color rgb 1} #if (Reflections) finish{ reflection 3} #end } #end } #end #if(showBody*showWindows) intersection { object{CarBody pigment {color rgbt <.07,.07,.07,.5>} finish {reflection 0 phong .1 specular.3 } } object {Rubber pigment {color rgbt <.07,.07,.07,.2>} finish {reflection 0 phong .1 specular.3 } } } #end #if(showWindows+showLights) intersection { object{CarBody pigment { color rgbt <.1,.2,.3,.5>} #if (Reflections) finish {reflection.2 } #end } union { #if(showWindows) object { Window pigment { #if (Qual) color rgbt <.2,.3,.4,.7> #else color rgb <.1,.2,.3> #end } #if (Reflections) finish {reflection.2 } #end } #end #if(showLights) object { frontlights #if (Qual) interior {ior 1.31} texture {fLightIn} texture {fLightOut} #end } #end } } #end scale x*1.1 }//} #if(showWells+showHoles) cylinder { <-3.5,-1,1.5>, <-3.5,-1,5>, 1.5 pigment {color rgbt <.07,.07,.07,.2>} finish {reflection 0 phong .1 specular.3 }} // front wheels cylinder { <-3.5,-1,-1.5>, <-3.5,-1,-5>, 1.5 pigment {color rgbt <.07,.07,.07,.2>} finish {reflection 0 phong .1 specular.3 }} cylinder { <7,-1,1.7>, <7,-1,5>, 1.5 pigment {color rgbt <.07,.07,.07,.2>} finish {reflection 0 phong .1 specular.3 }} // rear wheels cylinder { <7,-1,-1.7>, <7,-1,-5>, 1.5 pigment {color rgbt <.07,.07,.07,.2>} finish {reflection 0 phong .1 specular.3 }} #end //box {<7,-1.9,5>,<10,-3,-5> pigment {color rgbt <.07,.07,.07,.2>} finish {reflection 0 phong .1 specular.3 } } } #if(showWheels) object {Wheel scale z*.7 rotate <0,(180 + Turn),0> translate <-3.5,-1,3>} object {Wheel scale z*.7 rotate <0,Turn,0> translate <-3.5,-1,-3>} object {Wheel rotate <0,180,0> translate <7,-1,3.8>} object {Wheel rotate <0,0,0> translate <7,-1,-3.8>} #end #if(Detail) object{Logo scale 1 rotate <0,90,-55> translate <-7.3,-1.14,0>} #end translate x*-2 texture{Metallic1} #if (Qual*Metallic) texture {Metallic2}//texture{Reflection} #end } //} object{Car rotate Angle translate Position} //object {CarBody rotate Angle translate Position texture {Metallic1}} /*difference{difference { union{ object {CarBody } object {Mirror scale z*-1} object {Mirror } texture {Metallic1} } object {Window1} scale x*1.1} object {Wheel scale z*.7 rotate <0,(180 + Turn),0> translate <-3.5,-1,3>} object {Wheel scale z*.7 rotate <0,Turn,0> translate <-3.5,-1,-3>} rotate Angle translate Position } */ //object {CarFins rotate Angle translate Position texture {Metallic2}} //object {frontlights rotate Angle translate Position pigment {color rgbt<.5,0,.5,.87>} finish{reflection <0,.2,.2>}} //object {RearLightWhite rotate Angle translate Position+x *1.5} //object {RearLightRed rotate Angle translate Position-x *1.5} //object {RearLights1 rotate Angle translate Position } //object {RLightCylRed rotate Angle translate Position texture {rLightOutWhite}} //cylinder{ -x*50,x*50,.7 scale x*20 rotate Angle translate Position+<2.5,1,0> pigment {color rgbt <1,0,0,.7>} finish { reflection <0,.1,.2> } } // temp for rear lights //cylinder{ -x*50,x*50,.01 scale x*20 translate <2.5,1,0> } #end // end macro //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //REM Cars (Colour, Angle, Position, angle of front wheel) /* Colours: 1 = Metallic Deep Magenta 2 = Metallic Teal */ Cars (2, y*-50 , <1.7,1.2,15>, -20) // blue nearer Cars (1, y*120, <-5,1.2,30>, 0) //Cars (2, y*-90, <0,1.2,20>, 0 ) // front //Cars (2, y*-90, <0,1.2,20>, 0 ) // back //Cars (2, 0, <0,1.2,10>, 0 ) // side //Cars (1, y*105 , <-7.5,1.2,30>, 0) // next to each other //Cars (2, y*-120, <6,1.2,30>, 20) // display_project(Car3,0,2,0,<0,.2,.5>) // Renderer ///////////////////////////////////////////////////////// /* Notes Blue Vector colors: Shadow rgb<69,84,116>/255 color rgb<84,187,225>/255 To do list: X // Quality settings: Detail modelling on/off v doors thin negative blobs panels thin negative blobs window CSG shaping 'Wing' csg shaping Numberplates : CSG - SA flat numberplates wheel-wells interior csg lights Rem maybe not as it would slow down rendering too much tyre lettering */