/* -------------------------- Entry: 0020 WWW: http:// Title: The Old Fractal Author: Georg Mogk ---------------------------*/ // PoVRay 3.5 Scene File " The Old Fractal .pov" // Date: 15.04.2004 //-------------------------------------------------------------------------- #version 3.5; global_settings { assumed_gamma 1.0 } //-------------------------------------------------------------------------- // camera ------------------------------------------------------------------ camera {//ultra_wide_angle angle 75 // front view location <0.0 , 0.2 ,-1.5> right x*image_width/image_height look_at <0.0 , 0.5 , 0.0> } // sun --------------------------------------------------------------------- light_source{<1500,2500,-2500> color <1,1,1>} // sky --------------------------------------------------------------------- plane{<0,1,0>,1 hollow texture{pigment{ bozo turbulence 0.85 scale 1.0 translate<5,0,0> color_map { [0.5 rgb <0.20, 0.20, 1.0>] [0.6 rgb <1,1,1>] [1.0 rgb <0.5,0.5,0.5>]} } finish {ambient 1 diffuse 0} } scale 10000} //------------------------------ fog{distance 300000 color <1,1,1>} //----------------------- Materials --------------------------------------------- // A couple highly reflective metal textures. #declare Polished_Chrome = texture { pigment { rgb <0.2, 0.2, 0.2> } finish { ambient 0.1 diffuse 0.7 brilliance 6.0 reflection 0.6 phong 0.8 phong_size 120 } } #declare Rust = texture { pigment { granite color_map { [0.0 rgb <0.89, 0.51, 0.28>] [0.4 rgb <0.70, 0.13, 0.00>] [0.5 rgb <0.69, 0.41, 0.08>] [0.6 rgb <0.49, 0.31, 0.28>] [1.0 rgb <0.89, 0.51, 0.28>] } } finish { ambient 0.2 diffuse 0.4 } } #declare F_MetalA = finish { ambient 0.35 brilliance 2 diffuse 0.3 metallic specular 0.80 roughness 1/20 reflection 0.1 }; #declare P_Copper1 = color rgb <0.40, 0.20, 0.15>; #declare T_Copper_1A = texture { pigment { P_Copper1 } finish { F_MetalA } } //---------------------- Basic Definitions --------------------------------------- #declare a=1/sqrt(3); #declare b=1/(2*sqrt(3)); #declare c=0.5; #declare h=sqrt(2/3); #declare R=sqrt(6)/4; #declare d=1-R; // Vertexes of Tetraheadron #declare TetraEcken = array[4]; #declare TetraEcken[0] = <-c,-d,-b>; #declare TetraEcken[1] = ; #declare TetraEcken[2] = <0,-d,a>; #declare TetraEcken[3] = <0,R,0>; #declare Dodecahedron = intersection {plane {-z, 1 rotate <-26.56505117708, 0, 0>} plane {-z, 1 rotate <-26.56505117708, -72, 0>} plane {-z, 1 rotate <-26.56505117708, -144, 0>} plane {-z, 1 rotate <-26.56505117708, -216, 0>} plane {-z, 1 rotate <-26.56505117708, -288, 0>} plane {-z, 1 rotate <26.56505117708, -36, 0>} plane {-z, 1 rotate <26.56505117708, -108, 0>} plane {-z, 1 rotate <26.56505117708, -180, 0>} plane {-z, 1 rotate <26.56505117708, -252, 0>} plane {-z, 1 rotate <26.56505117708, -324, 0>} plane { y, 1} plane {-y, 1} bounded_by {sphere {0, 1.2585}} } #declare Dodekaeder = object{ Dodecahedron bounded_by{box{<-1.5,-1.5,-1.5>,<1.5,1.5,1.5>}} scale <1,1,1>*0.75 rotate<25,25,0> //translate<0,1,0> }; // end of object; #macro Linie (P1,P2,dick) // create a curved tube object translating a sphere along a certain path sphere_sweep { linear_spline 2, // number of specified sphere positions P1, dick // position, radius P2, dick // ... tolerance 0.001 // optional } #end //Macro //-------------------- Iteration --------------------------------------------------- #macro TetraederBaum(itlevel, Atom,sf) union{ object{ Atom scale sf } #if (itlevel>0) #local num=0; #while (num < 4) object{ union{ Linie (<0,0,0>, 0.5*TetraEcken[num],0.02) object{ TetraederBaum(itlevel-1,Atom,sf) scale sf translate 0.5*(TetraEcken[num]) } } } #local num = num +1; #end // while #end // if } // union #end // Ende des Macros //-------------------- Scene -------------------------------------------------------- // sea --------------------------------------------------------------------- plane{<0,1,0>, 0 texture{Polished_Chrome normal {crackle 0.15 scale <0.35,0.25,0.25> turbulence 0.5 } finish {ambient 0.1 diffuse 0.7 reflection 0.60}}} object{ TetraederBaum(4,object{Dodekaeder scale 0.2},<0.5, 0.5, 0.5>) texture{ Rust normal { agate 1.5 scale 0.25} finish { ambient 0.15 diffuse 0.85 phong 0.1 } scale 0.5 } rotate y*40 translate d*y -0.3 *x+0.3*z } object{ TetraederBaum(6,sphere { <0, 0, 0>, 0.2 },<0.5, 0.5, 0.5>) texture { T_Copper_1A finish { ambient 0.15 diffuse 0.75 phong 1} } rotate y*-30 translate d*y+0.35*x+0.3*z }