#version 3.6; /* Iterative version of the Brocolli fractal */ #declare CYLRADIUS = 10; #declare CYLHEIGHT = 10; #declare RANGE = 25; #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 <1,1,1> } global_settings { ambient_light rgb <1,1,1> } // Light sources light_source { VP color rgb 0.5*<1,1,1> } light_source { VP + <0,0,10> color rgb <1,1,1> } #declare PHI = (1 + sqrt(5))/2; #declare ANGLE = 360 * (1 - 1/PHI); #declare thetexture1 = texture { pigment { colour rgb <0.5,0.5,0.5> } finish { ambient 0.1 diffuse 0.8 specular 0.2 } } #declare thetexture2 = texture { pigment { colour rgb <0.5,0.6,0.5> } finish { ambient 0.1 diffuse 0.8 specular 0.2 } } #declare stage0 = cone { <0,0,0>, CYLRADIUS, <0,0,CYLHEIGHT>, 0 } #declare stage1 = union { #declare i = 1; #while (i <= 100) #declare TX = sqrt(i) * cos(i * ANGLE); #declare TY = sqrt(i) * sin(i * ANGLE); #declare TZ = 10-sqrt(TX*TX+TY*TY); object { stage0 scale 0.15 translate } #declare i = i + 1; #end } #declare stage2 = union { #declare i = 1; #while (i <= 100) #declare TX = sqrt(i) * cos(i * ANGLE); #declare TY = sqrt(i) * sin(i * ANGLE); #declare TZ = 10-sqrt(TX*TX+TY*TY); object { stage1 scale 0.15 translate } #declare i = i + 1; #end } #declare stage3 = union { #declare i = 1; #while (i <= 100) #declare TX = sqrt(i) * cos(i * ANGLE); #declare TY = sqrt(i) * sin(i * ANGLE); #declare TZ = 10-sqrt(TX*TX+TY*TY); object { stage2 scale 0.15 translate } #declare i = i + 1; #end } /* #declare stage4 = union { #declare i = 1; #while (i <= 100) #declare TX = sqrt(i) * cos(i * ANGLE); #declare TY = sqrt(i) * sin(i * ANGLE); #declare TZ = 10-sqrt(TX*TX+TY*TY); object { stage3 scale 0.15 translate } #declare i = i + 1; #end } */ union { object { stage0 texture { thetexture2 } } object { stage1 texture { thetexture2 } } object { stage2 texture { thetexture2} } object { stage3 texture { thetexture1 } } //object { stage4 texture { thetexture1 } } }