///////////////////////////////////////////////////////////////////////////// // Name #version unofficial MegaPov 0.7; ///////////////////////////////////////////////////////////////////////////// // Include Files #include "colors.inc" #include "metals.inc" #include "finish.inc" #include "woods.inc" #include "shapes.inc" #include "skies.inc" #include "macros.inc" #include "glass.inc" ///////////////////////////////////////////////////////////////////////////// // Declared pigments, finishes, etc. #declare sky_vect = z; #declare lookat = <0, 0, 45>; #declare cam_loc = <4000, 0, 1000>; #declare cam_zoom = 40; #declare light_loc = <2, 2, 4>*10000; #declare flare_scale_factor = 1; #declare flare_amount = 1; #declare spot_fade_amount = .01; #declare flare_brightness = 1; #declare flare_type = "35mm" // <- Change this value! #declare flare_auto_rotate = 1; //#include "lnsflare.inc" #declare image_scale = sqrt(image_width*image_height); global_settings { max_trace_level 12 /* photons { count 20000 autostop 0 jitter .4 media 100 } */ // motion_blur 5, .25 } background { color Black } #default { pigment { Gray75 } finish { ambient .1 diffuse .9 } } #declare c = clock * 90; ///////////////////////////////////////////////////////////////////////////// // Sky /*sky_sphere { S_Cloud1 rotate <90, 0, 0> }*/ //#include "starfield.inc" ///////////////////////////////////////////////////////////////////////////// // Lights /*light_source { light_loc colour rgb<.25, .25, .25> } light_source { cam_loc colour .1 }*/ /*light_source { <-cam_loc.x, -cam_loc.y, cam_loc.z> colour .5 }*/ /*#declare px = -10000; #while (px <= 10000) #declare py = -10000; #while (py <= 10000) #declare pz = -10000; #while (pz <= 10000) light_source { color .1 } #declare pz = pz + 20000; #end #declare py = py + 20000; #end #declare px = px + 20000; #end*/ ///////////////////////////////////////////////////////////////////////////// // Camera camera { location cam_loc direction up sky_vect right <0, -(image_width/image_height), 0> sky sky_vect look_at lookat } /*camera { spherical_camera h_angle 180 v_angle 90 location cam_loc direction up sky_vect right <0, -(image_width/image_height), 0> sky sky_vect look_at lookat }*/ #declare R1 = seed(1); #declare R2 = seed(2); ///////////////////////////////////////////////////////////////////////////// // Values #declare mm = 0.0010; #declare cm = 0.0100; #declare m = 1.0000; #declare ft = 0.3048; #declare in = 0.0254; ///////////////////////////////////////////////////////////////////////////// // Objects #declare nNestLevel = 0; #declare nNodeNum = 0; #macro Bolt(vStartPos, vDirection) #declare nNestLevel = nNestLevel + 1; #local vStart = vStartPos; #while (vStart.z > 0) cylinder { <0, 0, 0>, vDirection, #if (nNestLevel = 1) .25 #else .1 #end pigment{colour 2} finish{ambient 1} translate vStart no_shadow } #if (mod(nNodeNum, 10) = 0) light_source { vStart #if (nNestLevel = 1) .05 #else .025 #end } #end #declare nNodeNum = nNodeNum + 1; #local vStart = vStart + vDirection; #local vDirection = (vDirection*<.25, .25, 1>) + <(rand(R1)-.5)*2, (rand(R1)-.5)*2, 0>; #if (nNestLevel = 1) #local vDirection = vDirection - (vnormalize()*<1, 1, 0>); #else #local vDirection = vDirection + (vnormalize()*<1, 1, 0>); #end #local fBranch = rand(R1); #if (nNestLevel <= 3) #if (fBranch > .975) #local vNewBolt = vStart; Bolt(vNewBolt, <-vDirection.x, -vDirection.y, -1>) #end #end #if (nNestLevel > 1) #if (fBranch > .95) #local vStart = <0, 0, 0>; #end #end #end light_source { #if (nNestLevel = 1) .1 #else .075 #end } #declare nNestLevel = nNestLevel - 1; #end #declare nNestLevel = 0; #declare nNodeNum = 0; #declare R1 = seed(1); Bolt(<0, 0, 100>, <0, 0, -1>) plane { <0, 0, 1> 0 finish{ambient 0 diffuse 1} }