// Persistence of Vision Ray Tracer Scene Description File // File: .pov // Vers: 3.5 // Desc: robot pour Briareos // Date: 15 Septembre 2002 à 23h35 // Auth: É.chap #include "colors.inc" // Standard Color definitions #include "textures.inc" // Standard Texture definitions #include "metals.inc" #include "glass.inc" light_source{<50,5,-75> color White } light_source{<-12,5,-3> color White} camera { location <0,0,-18 > direction 1.5*z right 1.5*x look_at <0,0,0> } #declare ciel = sphere { <0, 0, 0>, 1 texture { pigment {gradient y color_map { [0.0 color rgb < 1.0, 1.0, 1.0 >] [0.3 color rgb < 0.5, 0.6, 1.0 >] } } finish { diffuse 0 ambient 1 } } scale 1000 hollow on no_shadow } #declare Tex1=texture { Aluminum } #declare Piece1= difference { union { box {<-4,0,0>,<4,7,4>} box {<-4,0,-3>,<4,-4,3> rotate x*65 translate z*4} } cylinder {<3.5,3.3,-0.1>,<3.5,3.3,5>,1.2} cylinder {<-3.5,3.3,-0.1>,<-3.5,3.3,5>,1.2} box { -1,1 scale <1.2,1.2,5> rotate 45*z translate <4,7,0>} box { -1,1 scale <1.2,1.2,5> rotate 45*z translate <-4,7,0>} box { -1,1 scale <5,8,1> rotate -y*5 translate <5,0,0>} box { -1,1 scale <5,8,1> rotate y*5 translate <-5,0,0>} box { -1,1 scale <5,8,1> rotate -y*5 rotate -x*8 translate <5,0,0>} box { -1,1 scale <5,8,1> rotate y*5 rotate -x*8 translate <-5,0,0>} box{ <-3.5,-4,1.2>,<3.5,6,7>} texture { Tex1} } #declare Tex2=texture { Copper_Texture } #declare Piece2= intersection { box {-1,1 scale 4} box {-1,1 scale 5 rotate z*45} box {-1,1 scale 5 rotate y*45} texture { Tex2} } #declare Tex3a=texture { pigment { Red} finish { phong 0.1}} #declare Tex3b=texture { pigment { Green} finish { phong 0.1}} #declare Tex3c=texture { pigment { Blue} finish { phong 0.1}} #declare Piece3= union { #declare i=0; #while (i<40) torus {0.3,0.1 rotate (i*4+90)*x translate <1.5,i/4,(40-i)*i/80> texture {Tex3a}} torus {0.3,0.1 rotate (i*4+90)*x translate <0.5,i/4,(40-i)*i/80> texture {Tex3b}} torus {0.3,0.1 rotate (i*4+90)*x translate <-0.5,i/4,(40-i)*i/80> texture {Tex3c}} #declare i=i+1; #end } #declare Tex4=texture { Aluminum } #declare Piece4a= difference { box{ -1,1 scale 2.5} sphere {<0,0,2.625>,1.625} sphere {<0,0,-2.625>,1.625} sphere {<0,2.625,0>,1.625} sphere {<0,-2.625,0>,1.625} sphere {<2.625,0,0>,1.625} sphere {<-2.625,0,0>,1.625} texture {Tex4} scale <0.7,0.9,0.7> } #declare Piece4= union { #declare i=0; #while (i<7) object { Piece4a translate (5-5*i)*y} #declare i=i+1; #end } #declare Tex5=texture { Silver_Texture } #declare Piece5a= difference { torus { 10,1.5 scale<1,1,0.4>} box{ <-3.5,1.6,-6>,<3.5,-1.6,0>}} #declare Piece5b= difference { torus { 10,1.5 scale<1,1,0.4>} box{ <-4.0,1.6,-6>,<4.0,-1.6,0>} translate -5*y} #declare Piece5c= difference { torus { 12,1.5 scale<1,1,0.4>} box{ <-4.5,1.6,-6>,<4.5,-1.6,0>} translate -10*y} #declare Piece5d= difference { torus { 10,1.5 scale<1,1,0.4>} box{ <-5.0,1.6,-6>,<5.0,-1.6,0>} translate -15*y} #declare Piece5= union { // object{Piece5a} object{Piece5b} object{Piece5c} object{Piece5d } texture {Tex5}} #declare Tex6=texture { Gold_Texture } #declare Piece6= difference { sphere {0,2} #declare i=0; #while (i<6) box { <1.5,-3,-3>,<3,3,3> rotate z*60*i} #declare i=i+1; #end sphere{<0,0,-2>,2.3} texture { Tex6} scale <2,1,0.5> } #declare Tex7=texture { Copper_Texture } #declare Piece7a= union { cylinder {<1.8,0,3>,<6,0,0>,1.6} cylinder {<1.8,0,-3>,<6,0,0>,1.6} cylinder {<1,0,2>,<1,0,-2>,1.6} } #declare Piece7b=object { Piece7a rotate 180*z} #declare Piece7= union{ object { Piece7a rotate 180*z} object { Piece7a } scale <2.5,0.5,1.8> texture {Tex7}} #declare Tex8=texture { T_Vicksbottle_Glass } #declare Piece8= union { sphere {<-15,-7,4>,2} sphere {<15,-7,4>,2} texture {Tex8}} #declare Tex9=texture { Aluminum } #declare Piece9= union{ torus { 2,0.9 rotate -z*45 translate <-16,-9,4>} torus { 2,0.9 rotate z*45 translate <16,-9,4>} texture {Tex9}} #declare Tex10=texture { Aluminum } #declare Piece10=union { cylinder{<-18,-10,4>,<-13,-10,4>,2.5} cylinder{<-15,-10,4>,<-15,-19,6>,1.2} cylinder{<-13,-19,6>,<-17,-19,6>,2.5} cylinder{<18,-10,4>,<13,-10,4>,2.5} cylinder{<15,-10,4>,<15,-19,6>,1.2} cylinder{<13,-19,6>,<17,-19,6>,2.5} texture {Tex10}} #declare Tex11=texture { T_Silver_1B } #declare Piece11a=difference { cylinder{ <12,-20,6>,<18,-20,6>,2.7} cylinder{ <11,-18,6>,<19,-18,6>,1.7} cylinder{ <11,-22,6>,<19,-22,6>,1.7} } #declare Piece11= union{ object { Piece11a} object { Piece11a translate x*-30} texture {Tex11}} #declare Piece12= object { Piece10 translate <0,10,-4> rotate x*45 translate<0,-22,6>} #declare Tex13=texture { T_Silver_1C } #declare piece13a= intersection {plane {z, 1} /* Rotate 90 in z axis to stand up */ // plane {z, 1 rotate < 60, 0, 0>} plane {z, 1 rotate <120, 0, 0>} //plane {z, 1 rotate <180, 0, 0>} plane {z, 1 rotate <240, 0, 0>} //plane {z, 1 rotate <300, 0, 0>} plane { x, 1} plane {-x, 1} } #declare piece13b=difference { union { box {0,1} cylinder { <0.5,0,1>,<0.5,1,1>,0.5} } box{<-0.1,0.2,0.5>,<1.1,0.8,1.6>} cylinder { <0.5,-0.1,1>,<0.5,1.1,1>,0.1} } #declare piece13c=difference { union { box {0,1 translate z*1.6} cylinder { <0.5,0.3,1>,<0.5,0.7,1>,0.5} cylinder { <0.5,0.3,2>,<0.5,0.7,2>,0.5} } cylinder { <0.5,-0.1,2>,<0.5,1.1,2>,0.1} cylinder { <0.5,-0.1,1>,<0.5,1.1,1>,0.1} } #declare piece13d=union { object { piece13b rotate y*180} box { <-0.7,0,0>,<-0.3,1,-4>} } #declare piece13e=union { object { piece13b} object { piece13c translate -z rotate y*45 translate z} cylinder { <0.5,-0.1,1>,<0.5,1.1,1>,0.09} object {piece13d translate <0.5,0,0.5> rotate -y*45 translate <1.207,0,2.207>} cylinder { <2.207,-0.1,2.207>,<2.207,1.1,2.207>,0.09} scale <2,1,1> translate -x } #declare piece13f=union { object { piece13a} object { piece13e translate z} object { piece13e translate z rotate x*120} object { piece13e translate z rotate x*240} } #declare Piece13= union{ object { piece13f scale 1.5 rotate y*90 rotate -x*45 translate <18,-30.3,3>} object { piece13f scale 1.5 rotate y*90 rotate -x*55 translate <-18,-30.3,3>} texture {Tex13} } #declare Tex16=texture { Copper_Texture } #declare Piece16a= union { cylinder {<-6,0,3>,<-0,0,0>,0.6} cylinder {<-6,0,-3>,<-0,0,0>,0.6} cylinder {<-5,0,2>,<-5,0,-2>,0.6} } #declare Piece16b=object { Piece7a rotate 180*z} #declare Piece16=union{ union{ object { Piece16a rotate 180*z} object { Piece16a } scale <2.5,0.5,1.8> rotate x*90 texture {Tex16} } object{ Piece2 } translate <0,-35,3> } #declare Tex18=texture { T_Vicksbottle_Glass } #declare Piece18= union { sphere {<-15,-7,4>,2} sphere {<15,-7,4>,2} texture {Tex18}} #declare Tex19=texture { Aluminum } #declare Piece19= union{ torus { 2,0.9 rotate -z*45 translate <-16,-9,4>} torus { 2,0.9 rotate z*45 translate <16,-9,4>} texture {Tex19}} #declare Tex20=texture { Aluminum } #declare Piece20=union { cylinder{<-18,-10,4>,<-13,-10,4>,2.5} cylinder{<-15,-10,4>,<-15,-19,6>,1.2} cylinder{<-13,-19,6>,<-17,-19,6>,2.5} cylinder{<18,-10,4>,<13,-10,4>,2.5} cylinder{<15,-10,4>,<15,-19,6>,1.2} cylinder{<13,-19,6>,<17,-19,6>,2.5} texture {Tex20}} #declare Tex21=texture { T_Silver_1B } #declare Piece21a=difference { cylinder{ <12,-20,6>,<18,-20,6>,2.7} cylinder{ <11,-18,6>,<19,-18,6>,1.7} cylinder{ <11,-22,6>,<19,-22,6>,1.7} } #declare Piece21= union{ object { Piece21a} object { Piece21a translate x*-30} texture {Tex21}} #declare Piece22= object { Piece20 translate <0,10,-4> rotate x*45 translate<0,-22,6>} #declare Tex23=texture { T_Silver_1C } #declare piece23a= intersection {plane {z, 1} /* Rotate 90 in z axis to stand up */ // plane {z, 1 rotate < 60, 0, 0>} plane {z, 1 rotate <120, 0, 0>} //plane {z, 1 rotate <180, 0, 0>} plane {z, 1 rotate <240, 0, 0>} //plane {z, 1 rotate <300, 0, 0>} plane { x, 1} plane {-x, 1} } #declare piece23b=difference { union { box {0,1} cylinder { <0.5,0,1>,<0.5,1,1>,0.5} } box{<-0.1,0.2,0.5>,<1.1,0.8,1.6>} cylinder { <0.5,-0.1,1>,<0.5,1.1,1>,0.1} } #declare piece23c=difference { union { box {0,1 translate z*1.6} cylinder { <0.5,0.3,1>,<0.5,0.7,1>,0.5} cylinder { <0.5,0.3,2>,<0.5,0.7,2>,0.5} } cylinder { <0.5,-0.1,2>,<0.5,1.1,2>,0.1} cylinder { <0.5,-0.1,1>,<0.5,1.1,1>,0.1} } #declare piece23d=union { object { piece23b rotate y*180} box { <-0.7,0,0>,<-0.3,1,-4>} } #declare piece23e=union { object { piece23b} object { piece23c translate -z } cylinder { <0.5,-0.1,1>,<0.5,1.1,1>,0.09} object {piece23d translate <0.5,0,0.5> translate <0.5,0,2>} cylinder { <0.5,-0.1,1.5>,<0.5,1.1,1.5>,0.09} scale <2,1,1> translate -x } #declare piece23f=union { object { piece23a} object { piece23e translate z} object { piece23e translate z rotate x*120} object { piece23e translate z rotate x*240} } #declare Piece23= union{ object { piece23f scale 3 rotate y*90 rotate x*90 translate <18,-30.3,3>} object { piece23f scale 3 rotate y*90 rotate x*90 translate <-18,-30.3,3>} texture {Tex23} } #declare Piece24=union { object { Piece18 } object { Piece19 } object { Piece20} object { Piece21 } object { Piece22 } object { Piece23 }} #declare robot= union{ object { Piece1 } object { Piece2 scale <0.75,0.75,1.1> translate <0,2.5,6> } object { Piece3 translate <0,-5 ,10> } object { Piece4 translate <0,-5 ,8> } object { Piece5 translate <0,-5 ,4> } object { Piece6 translate <0,-7 ,-2> } object { Piece7 translate <0,-7 ,5>} object { Piece8 } object { Piece9 } object { Piece10 } object { Piece11 } object { Piece12 } object { Piece13 } object { Piece16} object { Piece24 translate y*-35} scale 0.12 } object { robot rotate 45*y translate <-8,3,0>} object { robot rotate 5*y translate <-2,3,0>} //object { robot rotate -45*y translate <0,3,0>} object { robot rotate -90*y translate <3,3,0>} object { robot rotate -135*y translate <8,3,0>} object { ciel } //sphere { 0,100 texture { Apocalypse scale 100} hollow on no_shadow }