#include "fractal.inc" global_settings{assumed_gamma 1.0} background{rgb 0} camera{location 1000*z angle 3 look_at 0} light_source{100*z 1} // use this to test mesh fractal /* #macro Leaf() #version unofficial megapov 0.7; #local P1=<0,0,0>; #local P2=<0,1,0>; #local P3=<1,0,0>; #local P1=vtransform(P1,transform{Transform}); #local P2=vtransform(P2,transform{Transform}); #local P3=vtransform(P3,transform{Transform}); triangle{P1 P2 P3} #end #macro Branch() #end #declare FractalTex=texture{pigment{color rgb 1}} #local Obj=mesh{ KWR_2D(P1,7) } */ // use this to test union fractal /* #macro Leaf() sphere{<.5,.5,0>.5 transform{Transform}} #end #macro Branch() #end #declare FractalTex=texture{pigment{color rgb 1}} #local Obj=union{ KWR_2D(P2,8) } */ // use this to test separated pigments fractal /* #macro Leaf() sphere{<.5,.5,0>.5 transform{Transform} pigment{color rgbft Step/NSteps}} #end #macro Branch() Leaf() #end #declare FractalTex=texture{pigment{color rgb 1}} #local Obj=union{ KWR_2D(P3,6) } */ // use this to test Cantor /* #macro Leaf() #version unofficial megapov 0.7; #local P1=<0,0,0>; #local P2=<0,1,0>; #local P3=<1,0,0>; #local P4=<1,1,0>; #local P1=vtransform(P1,transform{Transform}); #local P2=vtransform(P2,transform{Transform}); #local P3=vtransform(P3,transform{Transform}); #local P4=vtransform(P4,transform{Transform}); triangle{P1 P2 P3} triangle{P4 P2 P3} #end #macro Branch() #end #declare FractalTex=texture{pigment{gradient y color_map{[0 rgb <1,.5,.5>][1 rgb <.5,1,.5>]}}} #local Obj=mesh{ KWR_2D(P4,10) } */ // use this to test pigment fractal /* #declare Pig=pigment{spherical color_map{[0 rgb 0][1 rgb 100]}scale 2 translate<.5,.5,0>} #macro Leaf() [1 Pig transform{Transform}] #end #macro Branch() #end #declare Pig=pigment{average pigment_map{KWR_2D(P5,3)}} #declare Pig=pigment{average pigment_map{KWR_2D(P5,3)}} #local Obj=box{<0,0,0><1,1,-.001> texture{pigment{Pig}}} */ // use this to test fractal splited to union of identical meshes /* #macro Leaf() #version unofficial megapov 0.7; #local P1=<0,0,0>; #local P2=<1,0,0>; #local P3=<1,1,0>; #local P4=<0,1,0>; #local P1=vtransform(P1,transform{Transform}); #local P2=vtransform(P2,transform{Transform}); #local P3=vtransform(P3,transform{Transform}); #local P4=vtransform(P4,transform{Transform}); triangle{P1 P2 P3} triangle{P1 P3 P4} #local P1=vrotate(P1-.5,z*120)+.5; #local P2=vrotate(P2-.5,z*120)+.5; #local P3=vrotate(P3-.5,z*120)+.5; #local P4=vrotate(P4-.5,z*120)+.5; triangle{P1 P2 P3} triangle{P1 P3 P4} #local P1=vrotate(P1-.5,z*120)+.5; #local P2=vrotate(P2-.5,z*120)+.5; #local P3=vrotate(P3-.5,z*120)+.5; #local P4=vrotate(P4-.5,z*120)+.5; triangle{P1 P2 P3} triangle{P1 P3 P4} #end #macro Branch() #end #declare FractalTex=texture{pigment{granite}normal{granite}scale.01} #local Obj=mesh{ KWR_2D(P6,6) } #macro Leaf() object{Obj transform{Transform}} #end #local Obj=union{ KWR_2D(P6,7) } */ // use this to test counting fractal /* #declare C=0; #macro Leaf() #version unofficial megapov 0.7; #local Digit=text{ttf "arial.ttf" str(C,0,0) (NSteps-Step)/10,0 scale <-1,1,1>} #local Digit=object{Digit translate -(max_extent(Digit)+min_extent(Digit))/2} #local Dim=max_extent(Digit)-min_extent(Digit); #local Digit=object{Digit scale<1/Dim.x,1/Dim.y,1/Dim.z>/3 translate <.5,.5,0>} #declare C=C+1; object{Digit transform{Transform}} #end #macro Branch() Leaf() #end #declare FractalTex=texture{pigment{color rgb 1}} #local Obj=union{ KWR_2D(P7,4) } */ // use this to test blob fraktal /* #macro Leaf() sphere{<.5,.5,0> 1 5 transform{Transform}} #end #macro Branch() Leaf() #end #declare FractalTex=texture{pigment{gradient y color_map{[0 rgb <1,.5,.5>][1 rgb <.5,1,.5>]}}} #local Obj=blob{ KWR_2D(P8,4) } */ // use this to test last fractal /* #macro Leaf() #version unofficial megapov 0.7; #local P1=<0,0,0>; #local P2=<1,0,0>; #local P3=<.5,1,0>; #local N1=P1-x; #local N2=P2+x; #local N3=P3+y; #local P1=vtransform(P1,transform{Transform}); #local P2=vtransform(P2,transform{Transform}); #local P3=vtransform(P3,transform{Transform}); #local N1=vnormalize(vtransform(N1,transform{Transform})-P1); #local N2=vnormalize(vtransform(N2,transform{Transform})-P2); #local N3=vnormalize(vtransform(N3,transform{Transform})-P3); smooth_triangle{P1 N1 P2 N2 P3 N3} #end #macro Branch() #end #declare FractalTex=texture{pigment{color rgb 1}} #local Obj=mesh{ KWR_2D(P9,6) } #macro Leaf() object{Obj transform{Transform}} #end #local Obj=union{ KWR_2D(P9,7) } */ #local Obj=object{ Obj #if(defined(FractalTex))texture{FractalTex}#end no_shadow scale 40 } object{Obj translate -(max_extent(Obj)+min_extent(Obj))/2}