#include "textures.inc" #include "colors.inc" #include "../include/c-textures.inc" #declare use_radio = 1; global_settings{ ambient_light 0.0 assumed_gamma 1.0 max_trace_level 100 #if (use_radio) radiosity { pretrace_start 0.08 // start pretrace at this size pretrace_end 0.04 // end pretrace at this size count 50 //35 // higher -> higher quality (1..1600) [35] nearest_count 7 //5 // higher -> higher quality (1..10) [5] error_bound 1.8 // higher -> smoother, less accurate [1.8] recursion_limit 3 // how much interreflections are calculated (1..5+) [3] 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 //1 // brightness of radiosity effects (0..1) [1] adc_bailout 0.01/2 //normal on // take surface normals into account [off] media on // take media into account [off] //always_sample off // turn sampling in final trace off [on] //max_sample 1.0 // maximum brightness of samples } #end } #declare Pod_Aluminum = texture { AluminumWhite pigment { rgb<.8,.8,.8> } } background { color White } camera { location<-4,1,-40> look_at<-4,0,0> } light_source { <-2000,-2000,-2000> color White } light_source { <2000,2000,-2000> color White } /* #include "textures.inc" #include "colors.inc" background { color White } camera { location<-4,2,-40> look_at<-4,0,0> } light_source { <-2000,-2000,-2000> color White } light_source { <2000,2000,-2000> color White } */ #declare vent_rad = 10; #declare vent_rim_rad = 1; #declare VentRing = union { difference { cylinder { <0,0,-1>,<0,0,1>,vent_rad } cylinder { <0,0,-100>,<0,0,100>,vent_rad-vent_rim_rad } } difference { cylinder { <0,0,-.5>,<0,0,.5>,vent_rad-.001 } cylinder { <0,0,-100>,<0,0,100>,vent_rad-vent_rim_rad-.5 } cylinder { <0,0,-100>,<0,0,-.5>,vent_rad-vent_rim_rad } } difference { cylinder { <0,0,-.75>,<0,0,10>,vent_rad+.25 } cylinder { <0,0,-100>,<0,0,100>,vent_rad-vent_rim_rad+.5 } } torus { vent_rad-vent_rim_rad,.5 rotate<90,0,0> translate<0,0,-.5> } torus { vent_rad,.25 rotate<90,0,0> translate<0,0,-.75> } } #declare vent_slit_rad = .25; #declare VentVents = union { difference { cylinder { <0,0,0>,<0,0,1>,vent_rad-.5 } #local xc = 0; #local yc = 0; #local xr = 7.5; #local yr = xr; #local num_slits = 12; #local ang_step = 3.14/num_slits; #local ang = 1.57+ang_step; #while(ang < 4.71 ) #local sx = xc + xr * cos(ang); #local sy = yc + yr * sin(ang); cylinder { <-sx,sy,-100>,<-sx,sy,100>,vent_slit_rad } cylinder { ,,vent_slit_rad } box { <-sx,-vent_slit_rad+sy,-100>, } #local ang = ang + ang_step; #end } } #declare Vent = union { object { VentRing } object { VentVents } texture { Pod_Aluminum } //rotate<0,30,0> } //object { Vent } #declare brake_rot = -25; #declare engine_mechanics = union { difference { cylinder { <-10,0,0>,<10,0,0>,5 } cylinder { <-100,0,0>,<100,0,0>,4 } difference { cylinder { <-100,0,0>,<-11,0,0>,10 } cylinder { <-100,0,0>,<100,0,0>,4.8 } } } sphere { <-4,0,-5>,1.75 } difference { torus { 4,1 rotate<90,90,0> scale<6,1,1> translate<-10,0,0> } difference { cylinder { <-100,0,0>,<-13,0,0>,10 } cylinder { <-100,0,0>,<100,0,0>,4.8 } } difference { cylinder { <-12.75,0,0>,<0,0,0>,10 } cylinder { <-100,0,0>,<100,0,0>,4 } } } difference { torus { 4,1 rotate<90,90,0> scale<6,1,1> translate<10,0,0> } difference { cylinder { <100,0,0>,<13,0,0>,10 } cylinder { <-100,0,0>,<100,0,0>,4.8 } } difference { cylinder { <12.75,0,0>,<0,0,0>,10 } cylinder { <-100,0,0>,<100,0,0>,4 } } } torus { 4,.75 rotate<90,90,0> translate<-12,0,0> } torus { 4,.75 rotate<90,90,0> translate<10.5,0,0> } torus { 4,.75 rotate<90,90,0> translate<12,0,0> } torus { 4,.75 rotate<90,90,0> translate<-10.5,0,0> } // fan nose cylinder { <-16,0,0>,<0,0,0>,1 } sphere { <0,0,0>,1 scale<1.5,1,1> translate<-16,0,0> } // intake slits #declare Count=0; #while (Count<360) sphere { <0,0,0>,.15 scale<4,1,1> translate<-9,5,0> rotate } sphere { <0,0,0>,.15 scale<4,1,1> translate<6,5,0> rotate } cylinder { <-9,5,0>,<6,5,0>,.15 rotate } #declare Count=Count+18; #end // fan blade #declare Count=0; #while (Count<360) box { <0,0,-.5>,<.15,4,.5> rotate<0,35,0> rotate translate<-15.5,0,0> } #declare Count=Count+15; #end // rivets #declare Count=0; #while (Count<360) union { sphere { <0,-4.8,0>,.05 } sphere { <27,-4.8,0>,.05 } cylinder { <0,-4.8,0>,<27,-4.8,0>,.05 } rotate translate<-13.5,0,0> } #declare Count=Count+3; #end torus { 4.8,.05 rotate<90,90,0> translate<-13.5,0,0> translate<27,0,0> } torus { 4.8,.05 rotate<90,90,0> translate<-13.5,0,0> } // air brakes #declare Count=0; #while (Count<360) union { difference { cylinder { <7,0,0>,<9.5,0,0>,5.125 } cylinder { <-100,0,0>,<100,0,0>,5 } box { <-100,1.25,-100>,<100,100,100> //pigment { color Blue } } box { <-100,-100,-100>,<100,-1.25,100> //pigment { color Red } } box { <-100,-100,100>,<100,100,0> } union { cylinder { <7.25,-.75,-100>,<7.25,-.75,100>,.2 //pigment { color Black } } cylinder { <7.25,-.25,-100>,<7.25,-.25,100>,.2 //pigment { color Black } } cylinder { <7.25,.25,-100>,<7.25,.25,100>,.2 //pigment { color Black } } cylinder { <7.25,.75,-100>,<7.25,.75,100>,.2 //pigment { color Black } } cylinder { <7.75,-.75,-100>,<7.75,-.75,100>,.2 //pigment { color Black } } cylinder { <7.75,-.25,-100>,<7.75,-.25,100>,.2 //pigment { color Black } } cylinder { <7.75,.25,-100>,<7.75,.25,100>,.2 //pigment { color Black } } cylinder { <7.75,.75,-100>,<7.75,.75,100>,.2 //pigment { color Black } } cylinder { <8.25,-.75,-100>,<8.25,-.75,100>,.2 //pigment { color Black } } cylinder { <8.25,-.25,-100>,<8.25,-.25,100>,.2 //pigment { color Black } } cylinder { <8.25,.25,-100>,<8.25,.25,100>,.2 //pigment { color Black } } cylinder { <8.25,.75,-100>,<8.25,.75,100>,.2 //pigment { color Black } } cylinder { <8.75,-.75,-100>,<8.75,-.75,100>,.2 //pigment { color Black } } cylinder { <8.75,-.25,-100>,<8.75,-.25,100>,.2 //pigment { color Black } } cylinder { <8.75,.25,-100>,<8.75,.25,100>,.2 //pigment { color Black } } cylinder { <8.75,.75,-100>,<8.75,.75,100>,.2 //pigment { color Black } } translate<.25,0,0> } } // air brake connector hinge cylinder { <7,-1,4.90>,<7,1,4.9>,.25 } sphere { <7,-1,4.9>,.25 } sphere { <7,1,4.9>,.25 } union { box { <6.75,-1,3>,<7.25,1,4.9> } cylinder { <7,-1,3>,<7,-1,4.9>,.25 } cylinder { <7,1,3>,<7,1,4.9>,.25 } translate<-7,0,5> rotate<0,brake_rot,0> translate<7,0,-5> } translate<-7,0,5> rotate<0,-brake_rot,0> translate<7,0,-5> rotate } #declare Count=Count+36; #end /* cylinder { <7.25,-1,-100>,<7.25,-1,100>,.125 }*/ /* #declare sx = 7; #declare sx_start = 7; #declare sx_w = 2.5; #declare sx_step = sx_w / 4; #declare sx_end = sx_start + sx_w; #declare sy = -1.25; #declare sy_start = -1.25; #declare sy_h = 2.0; #declare sy_step = sy_h / 4; #declare sy_end = sy_start + sy_h; #while(sy,,.125 } #declare sx = sx + sx_step; #end //#error " sy"; #declare sy = sy + sy_step; #end */ /* torus { 4.8,.05 rotate<90,90,0> translate<-13,0,0> } */ cylinder { <-3,0,-1.5>,<-3,5,-1.5>,1.5 } difference { cylinder { <-10,6.5,-1.5>,<-5,6.5,-1.5>,1.5 } cylinder { <-100,6.5,-1.5>,<100,6.5,-1.5>,1.5 } } difference { torus { 1.5,1.5 rotate<90,0,0> } box { <-100,-100,-100>,<100,0,100> } box { <-100,-100,-100>,<0,100,100> } translate<-5,5,-1.5> } cylinder { <-3,0,1.5>,<-3,5,1.5>,1.5 } difference { cylinder { <-10,6.5,1.5>,<-5,6.5,1.5>,1.5 } cylinder { <-100,6.5,1.25>,<100,6.5,1.5>,1.25 } } difference { torus { 1.5,1.5 rotate<90,0,0> } box { <-100,-100,-100>,<100,0,100> } box { <-100,-100,-100>,<0,100,100> } translate<-5,5,1.5> } object { Vent scale .125 translate<0,0,-5.75> rotate<15,0,0> } texture { Pod_Aluminum } } #declare engine_cover = union { difference { union { // the main shell cylinder { <-8,0,0>,<8,0,0>,5.75 } // round the front torus { 5.5,.25 rotate<90,90,0> translate<-8,0,0> } } // cut out the center cylinder { <-100,0,0>,<100,0,0>,5.25 } // cut the hold for the sphere cylinder { <-4,0,100>,<-4,0,-100>,2 } // vent hole cylinder { <0,0,-100>,<0,0,0>,1.5 rotate<15,0,0> } /* --- the air intake cutout --- */ // cut the air intake hole cylinder { <-3,0,-1.5>,<-3,100,-1.5>,1.5 } // cut the air intake hole cylinder { <-3,0,1.5>,<-3,100,1.5>,1.5 } // cutout the rest of the air intake box { <-100,0,-3>,<-3,100,3> } //box { <-5,0,-1.5>,<-3.5,100,1.5> } /* --- end air intake cutout --- */ // cut the back off with an angle box { <0,-100,-100>,<100,100,100> rotate<0,0,-35> translate<2,0,0> } // cut holes around sphere #declare cnt = 0; #while( cnt < 360 ) cylinder { <-2.25,0,-100>,<-2.25,0,100>,.125 rotate<0,0,cnt> translate<-4,0,0> } #declare cnt = cnt + 18; #end } #declare lights1 = union { #declare cnt = 0; #while( cnt < 360 ) light_source { <-8,0,-5.125> color NeonBlue rotate } light_source { <0,0,-5.125> color NeonBlue rotate } #declare cnt = cnt + 5; #end #declare cnt = 0; #while( cnt < 360 ) light_source { <-2,0,0> color NeonBlue rotate<0,0,cnt> translate<-4,0,-5.125> } #declare cnt = cnt + 10; #end } //object { lights1 } /* texture { pigment { color White } finish { ambient .5 diffuse .5 //brilliance .75 } } */ texture { PlasticWhite } } #declare engine = union { object { engine_mechanics } object { engine_cover } } union { //object { engine translate<0,0,8> } //object { engine translate<0,0,-8> } object { engine } rotate<0,-30,0> //rotate<-30,0,0> } /* plane { y,-10 texture { pigment { color White } finish { Glossy ambient .5 } } } */