/* -------------------------- Entry: 0026 WWW: http://www.student.tue.nl/e/r.a.m.vliegen Title: RingSphere Author: Roel Vliegen This is a basic recursive object. The only trick I used was the use of focal blur to fake some antialiasing. I do not know how to set antialiasing from within the pov-file. It is a simple object, but I like the "openness" very much. ---------------------------*/ // runtime about 3 hours 20 minutes on 2.93Ghz Xeon. // Declaring T_Chrome_1A texture so no include is needed #declare F_MetalA = finish { ambient 0.35 brilliance 2 diffuse 0.3 metallic specular 0.80 roughness 1/20 reflection 0.1 } #declare P_Chrome1 = color rgb <0.20, 0.20, 0.20>; #declare T_Chrome_1A = texture { pigment { P_Chrome1 } finish { F_MetalA } } camera { right 0.5*x up 0.5*y location <4,4,0> look_at 0 // focal blur instead of antialiasing... aperture 1/10000 blur_samples 10 } sky_sphere { pigment { color rgb 1 } } light_source {< 20, 10, 50> color rgb <1,1,1> } light_source {< 50, 10, 20> color rgb <1,1,1> } light_source {< 0, 0, -20> color rgb <1,1,0> } // declare basis object for recursion: ringsphere #declare ring = torus { 1, 0.04 } #declare ringsphere = union { object { ring } object { ring rotate <90,0,0> } object { ring rotate <0,0,90> } } // create fractal object from basisobject #declare fractal = ringsphere; #declare aaa = 0; #while (aaa<4) #declare fractal = union { object { ringsphere } object { fractal scale 0.5 translate <0.5,0,0> } object { fractal scale 0.5 translate <-0.5,0,0> } object { fractal scale 0.5 translate <0,0.5,0> } object { fractal scale 0.5 translate <0,-0.5,0> } object { fractal scale 0.5 translate <0,0,0.5> } object { fractal scale 0.5 translate <0,0,-0.5> } } #declare aaa = aaa + 1; #end #declare MAT = material { texture { pigment {rgbt <0.8,0.8,0.0,0.3>} finish { reflection { 0.1, 1.0 fresnel on } conserve_energy } } interior { ior 2 } } object { fractal rotate <20,30,40> material { MAT } } object { fractal rotate <0,45,> scale 20 translate <4,4,0>*(-4) texture { T_Chrome_1A } }