////////////////////////////////////////////////////////////Photons #declare Quality = 2; // 0-3 #if (Quality > 0) #declare Use_Photons = yes; #declare Photon_Run = yes; // change to "no" to reuse a map #declare Photon_File = "saber_test.ph"; #end #switch (Quality) #case (0) #declare Use_Photons = no; #break #case (1) #declare S_val = 0.1; #declare M_val = 75; #declare T_val = 5; #break #case (2) #declare S_val = 0.025; #declare M_val = 500; #declare T_val = 10; #break #case (3) #declare S_val = 0.01; #declare M_val = 1000; #declare T_val = 15; #break #end global_settings { //max_trace_level 10 //assumed_gamma 2.0 #if(Use_Photons) photons { spacing S_val media M_val max_trace_level T_val #if (Photon_Run) save_file Photon_File #else load_file Photon_File #end } #end } ////////////////////////////////////////////////////////////Photons #declare Final_town = 1; #declare Final_space = 2; #declare Final_diver = 3; #declare Preview_town = 4; #declare Preview_space = 5; #declare Preview_diver = 6; #declare Building_test = 7; ///////////////////// #declare Quality = 1; #declare radio = 0; #declare setting = 4; #include "material.inc" #include "legolib.pov" camera { //location <-62.5, 80, -250> //location <220,80,50> location <0,80,-250> right x up y direction z //look_at <62.5, 45, 0> look_at <0,10,0> angle 15 } #switch ( Quality ) #case ( Final_town ) light_source { <700, 500, 0> color (white) area_light 50*y, 50*z, 5, 5 adaptive 0 jitter rotate 45*y } #declare nice = color white; #declare nice2 = color rgb <.2, .2 ,.8>; #declare grad_tex = texture { pigment { gradient y color_map { [ 0.0 color nice ] [ 0.6 color nice2 ] } } finish { basic_finish } scale 200 } #break #case ( Final_space ) light_source { <700, 500, 0> color white area_light 50*y, 50*z, 5, 5 adaptive 0 jitter } #declare nice = color rgb <1, .8, .6>; #declare nice2 = color black; #declare grad_tex = pigment { gradient y color_map { [ 0.0 color nice ] [ 0.4 color _red ] [ 0.8 color black ] } } finish { basic_finish } scale 200 } #break #case ( Final_diver ) light_source { <700, 500, 0> color white area_light 50*y, 50*z, 5, 5 adaptive 0 jitter } #declare nice = color rgb <1, .8, .6>; #declare nice2= color black; #declare grad_tex = texture { pigment { gradient y color_map { [ 0.0 color nice ] [ 0.4 color green ] [ 0.8 color black ] } } finish { basic_finish } scale 200 } #break #case ( Preview_town ) light_source { <700, 500, 0> color white media_interaction off rotate 45*y } #declare nice = color white; #declare nice2 = color rgb <.2, .2, .8>; #declare grad_tex = texture { pigment { gradient y color_map { [ 0.0 color white ] [ 0.6 color nice2 ] } } finish { basic_finish } scale 200 } #break #case ( Preview_space ) light_source { <700, 500, 0> color white } #declare nice = color rgb <1, .8, .6>; #declare nice2= color black; #declare grad_tex = texture { pigment { gradient y color_map { [ 0.0 color nice ] [ 0.4 color _red ] [ 0.8 color black ] } } finish { basic_finish } scale 200 } #break #case ( Preview_diver ) light_source { <700, 500, 0> color white } #declare nice = color t_cyan; #declare nice2= color _blue; #declare grad_tex = texture { pigment { gradient y color_map { [ 0.0 color t_cyan ] [ 0.4 color t_cyan ] [ 0.8 color _blue ] } } finish { basic_finish } scale 200 } #break #case ( Building_test ) light_source { <700, 500, 0> color white } #declare nice = color white; #declare nice2 = color rgb <.2, .2 ,.8>; #end // the floor box { <-800, -2, -800> <800, 0, 900> texture { pigment { color nice } } finish { basic_finish } } #if ( Quality < 7 ) // the "enclosing world" box { <-750, -1, -750> <750, 750, 850> hollow texture { pigment { color white } } finish { basic_finish } } // the background union { box { <-800, -2, 849> <800, 800, 851> texture { finish { basic_finish } pigment { color nice2 } } } difference { box { <-800, 0, 649> <800, 200, 849> } cylinder { -805*x, 805*x, 200 translate <0, 200, 649> } texture { grad_tex } bounded_by { box { <-805, -1, 648> <805, 201, 850> } } } } #end // the bricks differently textured and aligned #declare somebricks = union { object { h_block2_2(beige_tex) } object { h_block2_2(yellow_tex) translate <24, 0, 0> } object { h_block2_2(orange_tex) translate <48, 0, 0> } object { h_block2_2(green2_tex) translate <0, 19.2, 8> } object { h_block2_2(blue_tex) translate <24, 19.2, 8> } object { h_block2_2(black_tex) translate <48, 19.2, 8> } object { h_block2_2(white_tex) translate <0, 38.4, 16> } object { h_block2_2(grey_tex) translate <24, 38.4, 16> } object { h_block2_2(lt_grey_tex) translate <48, 38.4, 16> } object { h_block2_2(brown_tex) translate <0, 57.6, 24> } object { h_block2_2(brown2_tex) translate <24, 57.6, 24> } object { h_block2_2(cyan_tex) translate <48, 57.6, 24> } object { h_block2_2(dark_cyan_tex) translate <0, 76.8, 32> } object { h_block2_2(yellowgreen_tex) translate <24, 76.8, 32> } object { h_block2_2(blue2_tex) translate <48, 76.8, 32> } object { h_block2_2(orange_bright_tex) translate <72, 0, 0> } object { h_block2_2(red_tex) translate <96, 0, 0> } object { h_block2_2(dark_red_tex) translate <120, 0, 0> } object { h_block2_2(mint_tex) translate <72, 19.2, 8> } object { h_block2_2(purple_tex) translate <96, 19.2, 8> } object { h_block2_2(green_tex) translate <120, 19.2, 8> } object { h_block2_2(grey2_tex) translate <72, 38.4, 16> } object { h_block2_2(dark_grey2_tex) translate <96, 38.4, 16> } object { h_block2_2(t_black_tex) interior { ior 1.5 } translate <120, 38.4, 16> } object { h_block2_2(t_blue_tex) interior { ior 1.5 } translate <72, 57.6, 24> } object { h_block2_2(t_clear_tex) translate <96, 57.6, 24> } object { h_block2_2(t_cyan_tex) interior { ior 1.5 } translate <120, 57.6, 24> } object { h_block2_2(t_green_tex) interior { ior 1.5 } translate <72, 76.8, 32> } object { h_block2_2(t_old_clear_tex) interior { ior 1.5 } translate <96, 76.8, 32> } object { h_block2_2(t_orange_tex) interior { ior 1.5 } translate <120, 76.8, 32> } object { h_block2_2(t_red_tex) interior { ior 1.5 } translate <144, 0, 0> } object { h_block2_2(t_yellow_tex) interior { ior 1.5 } translate <168, 0, 0> } object { h_block2_2(t_yellowgreen_tex) interior { ior 1.5 } translate <192, 0, 0> } object { h_block2_2(t_white_tex) interior { ior 1.5 } translate <144, 19.2, 8> } object { h_block2_2(t_vizor_tex) interior { ior 1.5 } translate <168, 19.2, 8> } object { h_block2_2(blue_gold_tex) translate <192, 19.2, 8> } object { h_block2_2(chrome_tex) translate <144, 38.4, 16> } object { h_block2_2(conductive_tex) translate <168, 38.4, 16> } object { h_block2_2(copperish_tex) translate <192, 38.4, 16> } object { h_block2_2(gold_tex) translate <144, 57.6, 24> } object { h_block2_2(goldish_tex) translate <168, 57.6, 24> } object { h_block2_2(hologram_tex) translate <192, 57.6, 24> } object { h_block2_2(lt_blue_tex) translate <144, 76.8, 32> } object { h_block2_2(r_black_tex) translate <168, 76.8, 32> } object { h_block2_2(r_brown_tex) translate <192, 76.8, 32> } object { h_block2_2(r_grey_tex) translate <216, 0, 0> } object { h_block2_2(r_white_tex) translate <216, 19.2, 8> } object { h_block2_2(r_yellow_tex) translate <216, 38.4, 16> } object { h_block2_2(silverish_tex) translate <216, 57.6, 24> } object { h_block2_2(bnsf_green_tex) translate <216, 76.8, 32> } object { h_block2_2(lt_green_tex) translate <240, 76.8, 32> } rotate -35*y } //1x1 brick = 8x8 //object { tech_f_block1_4(red_tex) translate <0, 0, 0> } #if (0) object { tree_1(green_tex) translate <-20, 0, -40> } object { tree_2(green_tex) translate <-30, 0, 0> } object { tree_3(green_tex) translate <-20, 0, 40> } //object { vh_block2_4(red_tex) translate <0, 0, 0> } // Tall 2x4 block height x 3 //object { dhblock2_4(red_tex) translate <0, 0, 0> } // pegs on at least 3 sides? 2x4 block //object { _2x4block(blue_tex) translate <8*4, 0, 0> } object { h_block2_4(blue_tex) translate <8*4, 0, 0> } object { h_block1_8(white_tex) translate <8*4, 0, 16> } // object { h_block1_2(yellow_tex) translate <8*4, 0, 24> } object { dhblock2_4(red_tex) rotate y*90 translate <8*4, 8.7, 24> } // 8.7 ?? #end #if (0) object { h_block2_2(t_yellowgreen_tex) interior { ior 1.5 } translate <0, 10.2, 8> } // t's = transparent object { h_block2_2(t_cyan_tex) interior { ior 1.5 } translate <20, 10.2, 8> } // t's = transparent object { h_block2_2(t_blue_tex) interior { ior 1.5 } translate <40, 10.2, 8> } object { h_block2_2(t_red_tex) interior { ior 1.5 } translate <-20, 10.2, 8> } object { h_block2_2(t_orange_tex) interior { ior 1.5 } translate <-40, 10.2, 8> } #end ///////////////////////////// LEGO Man \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ #declare hhead = union { object { head_bp01(0) } // age only yellow_tex - with face object { male_hair(black_tex) rotate y*-90 translate <0,6,0> } object { stwa_helmet(white_tex) rotate y*-90 translate <0,6,0> } // helmet_explorien object { vizor_1(t_cyan_tex) rotate y*-90 translate <0,6,0> } } // stwa_helmet // helmet // helmet_2 // helmet_3 // helmet_4 //object { head(white_tex,0) translate 0 } //no face //object { vizor_4(t_cyan_tex) #include "shapes.inc" //required by shapes2.inc #include "shapes2.inc" #declare c_H2O_abs = rgb <0.272, 0.046, 0.010>; //at 1 meter #declare c_Sea = <0.004, 0.012, 0.020>; //H2O scattering trial&error #declare n_Sea = normal { function { f_ridged_mf (x, y, z, 0.1, 3.0, 7, 0.7, 0.7, 2) } 2 } #declare ior_NaCl_H2O = 1.34; //35g/l #declare armrot = 45; #declare handxrot = -30; #declare shoulder = 7.0; #macro legoman(T) union { object { hand(white_tex) rotate x*handxrot translate <2.6,-8,-4.0> rotate x*armrot translate } object { hand(white_tex) rotate x*handxrot translate <-2.6,-8,-4.0> rotate x*armrot translate <-shoulder,14,0> } //pirate_hand object { left_arm(T) rotate x*armrot translate } object { right_arm(T) rotate x*armrot translate <-shoulder,14,0> } object { left_leg(blue_tex) } object { right_leg(blue_tex) } object { leg_joiner(blue_tex) } object { body(T) translate <0,5,0> } object { hhead translate <0,17.4,0> } object { stwa_lightsaber(red_tex) translate z*-3.7 rotate x*(handxrot-10) translate <2.6,-8,-4.0> rotate x*armrot translate } object { cylinder { 9.6*y, 23*y, 1.5 } hollow texture { pigment { rgbf 1 } finish { reflection { 0 0.5 fresnel } conserve_energy specular 1 roughness 0.01 } #if (1) normal { n_Sea } #end } interior { #if (1) ior ior_NaCl_H2O #end media { absorption c_H2O_abs #if (1) scattering { 3, c_Sea } #end method 3 intervals 1 samples 3, 3 aa_level 2 } } translate z*-3.7 rotate x*(handxrot-10) translate <2.6,-8,-4.0> rotate x*armrot translate } object { hammer(black_tex) rotate y*90 translate <0,-5,-3.7> rotate x*(handxrot-10) translate <-2.6,-8,-4.0> rotate x*armrot translate <-shoulder,14,0> } } #end object { legoman(mint_tex)//yellowgreen_tex) rotate y*5 translate <0, 10, -28> } //laser_mount(color_tex) //object { hovercraft_base(white_tex) translate <-20, 0.2, 8> }