#version 3.6; #include "rad_def.inc" #declare RANGE = 3; #declare VP = RANGE*vnormalize(); #declare VU = <0,0,1>; camera { perspective location VP up y right x*image_width/image_height angle 60 sky VU look_at <0,0,0> } background { color rgb <0,0,0> } global_settings { assumed_gamma 1.8 radiosity { Rad_Settings(Radiosity_Normal,off,off) } } // Light sources light_source { <1,0,0> color rgb <1,1,1> } light_source { <0,0,1> color rgb <1,1,1> } light_source { VP color rgb 0.3*<1,1,1> } #declare thetexture = texture { pigment { colour rgb <0.8,0.8,0.8> } finish { ambient 0.1 diffuse 0.7 specular 0.4 } } #declare stage0 = box { <-1,-1,-1>, <1,1,1> scale 1/2 } /* #declare stage0 = sphere { <0,0,0>, 0.5 } */ #declare stage1 = union { // First level object { stage0 translate <1,0,0> } object { stage0 translate <0,1,0> } object { stage0 translate <1,1,0> } object { stage0 translate <2,1,0> } object { stage0 translate <1,2,0> } // Second level object { stage0 translate <0,0,1> } object { stage0 translate <0,1,1> } object { stage0 translate <0,2,1> } object { stage0 translate <1,0,1> } object { stage0 translate <1,2,1> } object { stage0 translate <2,0,1> } object { stage0 translate <2,1,1> } object { stage0 translate <2,2,1> } // Third level object { stage0 translate <1,0,2> } object { stage0 translate <0,1,2> } object { stage0 translate <1,1,2> } object { stage0 translate <2,1,2> } object { stage0 translate <1,2,2> } translate <-1,-1,-1> scale 1/3 } #declare stage2 = union { // First level object { stage1 translate <1,0,0> } object { stage1 translate <0,1,0> } object { stage1 translate <1,1,0> } object { stage1 translate <2,1,0> } object { stage1 translate <1,2,0> } // Second level object { stage1 translate <0,0,1> } object { stage1 translate <0,1,1> } object { stage1 translate <0,2,1> } object { stage1 translate <1,0,1> } object { stage1 translate <1,2,1> } object { stage1 translate <2,0,1> } object { stage1 translate <2,1,1> } object { stage1 translate <2,2,1> } // Third level object { stage1 translate <1,0,2> } object { stage1 translate <0,1,2> } object { stage1 translate <1,1,2> } object { stage1 translate <2,1,2> } object { stage1 translate <1,2,2> } translate <-1,-1,-1> scale 1/3 } #declare stage3 = union { // First level object { stage2 translate <1,0,0> } object { stage2 translate <0,1,0> } object { stage2 translate <1,1,0> } object { stage2 translate <2,1,0> } object { stage2 translate <1,2,0> } // Second level object { stage2 translate <0,0,1> } object { stage2 translate <0,1,1> } object { stage2 translate <0,2,1> } object { stage2 translate <1,0,1> } object { stage2 translate <1,2,1> } object { stage2 translate <2,0,1> } object { stage2 translate <2,1,1> } object { stage2 translate <2,2,1> } // Third level object { stage2 translate <1,0,2> } object { stage2 translate <0,1,2> } object { stage2 translate <1,1,2> } object { stage2 translate <2,1,2> } object { stage2 translate <1,2,2> } translate <-1,-1,-1> scale 1/3 } #declare stage4 = union { // First level object { stage3 translate <1,0,0> } object { stage3 translate <0,1,0> } object { stage3 translate <1,1,0> } object { stage3 translate <2,1,0> } object { stage3 translate <1,2,0> } // Second level object { stage3 translate <0,0,1> } object { stage3 translate <0,1,1> } object { stage3 translate <0,2,1> } object { stage3 translate <1,0,1> } object { stage3 translate <1,2,1> } object { stage3 translate <2,0,1> } object { stage3 translate <2,1,1> } object { stage3 translate <2,2,1> } // Third level object { stage3 translate <1,0,2> } object { stage3 translate <0,1,2> } object { stage3 translate <1,1,2> } object { stage3 translate <2,1,2> } object { stage3 translate <1,2,2> } translate <-1,-1,-1> scale 1/3 } union { object { stage3 texture { thetexture } } }