#version 3.7; global_settings {assumed_gamma 1.7} #include "colors.inc" #include "textures.inc" #include "stones.inc" #include "woods.inc" #include "skies.inc" #ifndef (Fast) #declare Fast = no; #end #declare path_dim = 18; #declare path = array[path_dim] { <0.000000, 0.289545, 1.041971>, <0.028164, 0.289545, 1.041971>, <0.136912, 0.298947, 1.041934>, <0.293654, 0.335151, 1.041279>, <0.436434, 0.393980, 1.038404>, <0.563548, 0.471306, 1.031136>, <0.673479, 0.562512, 1.017268>, <0.765969, 0.663073, 0.994910>, <0.842993, 0.770885, 0.961924>, <0.905919, 0.884172, 0.915835>, <0.955687, 1.001038, 0.853647>, <0.993028, 1.119072, 0.771593>, <1.018375, 1.232930, 0.666833>, <1.032972, 1.334276, 0.539894>, <1.039563, 1.414830, 0.395415>, <1.041604, 1.469625, 0.239561>, <1.041897, 1.496822, 0.078039>, <1.041900, 1.500000, 0.000000> } #declare wireymin = path[0].y; #declare wireymax = path[path_dim - 1].y; #declare wireymed = (wireymin + wireymax)/2; #declare LogoUCTexture = texture { material_map { //gif "logo_uc_4.gif" gif "logo_unicatt_new.gif" map_type 2 once texture { pigment {White filter 0.5} finish { ambient .3 phong .75 } } texture { pigment {color rgb <0.1,0.4,0.66>} } // sono i tre colori del logo uc! texture { pigment {color rgb <0.8,0.8,0.72>} } texture { pigment {color rgb <0.9,0.64,0.08>} } //texture { pigment {Black} } } translate <0, -0.5, 0> rotate z*90 rotate x*135 } #declare wiretexture = texture {Chrome_Metal} //#declare PolloShift = 0.6 #declare PolloShift = 0.4; /* il cilindro serve a controllare la concentricita' del pattern... */ //cylinder { // <-2, 0, 0>, <2, 0, 0>, 0.7 // translate y*PolloShift // texture {pigment {White}} // } camera { angle 30 // location <12, 6, -18> location <4, 1.0, -6> look_at <0, 0.7, 0> } light_source { <20, 20, -10> color White*0.7 #if(!Fast) area_light x*2, z*2, 5, 5 jitter adaptive 1 circular orient #end } light_source { <-10, 20, 50> color White #if(!Fast) area_light x*2, y*2, 5, 5 jitter adaptive 1 circular orient #end } #declare Rotation = clock*360*y; /* bounding box per la superficie: * |x| < 1.041900 * |z| < 1.041971 * 0.289545 < y < 1.5 */ #local pb = path[1]*<-1,1,1>; #local pc = path[0]; #local pd = path[1]; #declare paththickness = 0.01; #declare qwire = union { #declare pathind = 0; #while (pathind < path_dim) sphere { path[pathind] paththickness texture {wiretexture} } #if (pathind < path_dim - 1) #local pa = pb; #local pb = pc; #local pc = pd; #if (pathind < path_dim - 2) #local pd = path[pathind + 2]; #else #local pd = pb*<1,1,-1>; // definito per simmetria #end #local pmid = (-pa + 9*pb + 9*pc - pd)/16; // midpoint by weighted smoothing cylinder { pb pmid paththickness texture {wiretexture} } sphere { pmid paththickness texture {wiretexture} } cylinder { pmid pc paththickness texture {wiretexture} } #end #declare pathind = pathind + 1; #end } object {qwire rotate Rotation} object {qwire scale <-1,1,1> rotate Rotation} object {qwire scale <1,1,-1> rotate Rotation} object {qwire scale <-1,1,-1> rotate Rotation} #declare halfsurf = mesh { #declare pathind = 0; #while (pathind < path_dim - 1) #declare n1 = <0, -1, 0>; #declare n2 = <1, 0, 0>; #if (pathind > 0) #local xdelta = path[pathind + 1].x - path[pathind - 1].x; #local ydelta = path[pathind + 1].y - path[pathind - 1].y; #declare n1 = vnormalize(); #end #if (pathind < path_dim - 2) #local xdelta = path[pathind + 2].x - path[pathind].x; #local ydelta = path[pathind + 2].y - path[pathind].y; #declare n2 = vnormalize(); #end smooth_triangle { path[pathind]*<1,1,-1>, n1, path[pathind], n1, path[pathind+1]*<1,1,-1>, n2 } smooth_triangle { path[pathind+1]*<1,1,-1>, n2, path[pathind], n1, path[pathind+1], n2 } #declare pathind = pathind + 1; #end } object {halfsurf //texture { Gold_Metal } texture { Cork } rotate Rotation } object {halfsurf //texture { Gold_Metal } texture { Cork } scale <-1,1,1> rotate Rotation } object {halfsurf translate -wireymed*y scale <1,-1,1> rotate 90*y translate wireymed*y texture { LogoUCTexture translate y*PolloShift} rotate Rotation } object {halfsurf translate -wireymed*y scale <1,-1,1> rotate -90*y translate wireymed*y texture { pigment { White filter 0.5} } finish { ambient .3 phong .75 } rotate Rotation } text {ttf "timrom.ttf" "DMF" 0.2, 0 //pigment {White} texture {T_Grnt0} scale 0.6 finish { ambient .5 phong .75 } translate <1, 0, -2.5> } cone { < 0, 0, 0>, 1.38 < 0, wireymin - paththickness, 0> 1.2 texture {pigment{White_Marble} scale 0.25} finish { ambient 0.1 diffuse 0.6 phong 1 phong_size 100 reflection 0.25 } rotate Rotation } box { <-3, 0, -3> <3, -4, 3> texture { T_Wood1 rotate 4*x translate y*(-2) scale 4} } /* terreno */ plane { y, -4 pigment {color rgb <0.4, 0.4, 1>} normal { bumps 1 } finish { ambient 0.1 diffuse 0.6 phong 1 phong_size 100 reflection 0.25 } translate clock*5*z } sky_sphere {S_Cloud2}