// Persistence Of Vision raytracer // Sample file by T.Higo 07.1997 #version 3.0 global_settings { assumed_gamma 2.3 } camera { location < 8, 0, -3> look_at <1, 0, 0> } light_source { <-50, 100, -50> color red 1 green 1 blue 1 } light_source { <50, 80, -50> color red 1 green 1 blue 1 } #declare Ghead = union { union { sphere { <0, 0, -1> 1 clipped_by { box {<-1, 0, 0>, <1, 1, -2>} } } sphere {< 0.8, 0.6, -0.7> 0.2 } sphere {<-0.8, 0.6, -0.7> 0.2 } scale <1,1,1.5> rotate x*10 } sphere { <0, 0, -1> 1 clipped_by { box {<-1, 0, 0>, <1, -1, -2>} } scale <1,0.5,1.5> } cylinder{ -0.8*x, 0.8*x, 0.6 } rotate -x*20 rotate -y*20 translate < 0, 3, 0 > } #declare Ghandr = union { cone { 0*z, 0.2, -1*z, 0.1 } sphere {< 0, 0, -1 > 0.2 } sphere {< 0, 0, 0 > 0.3 } rotate x*60 rotate y*0 translate < 0, 0, -1 > } #declare Garmr = union { cone { 0*z, 0.3, -1*z, 0.2 } union { Ghandr } sphere {< 0, 0, 0 > 0.4 } rotate -x*70 rotate -z*40 translate < -1, 1.6, -0.2 > } #declare Ghandl = union { cone { 0*z, 0.2, -1*z, 0.1 } sphere {< 0, 0, -1 > 0.2 } sphere {< 0, 0, 0 > 0.3 } rotate x*60 rotate y*0 translate < 0, 0, -1 > } #declare Garml = union { cone { 0*z, 0.3, -1*z, 0.2 } union { Ghandl } sphere {< 0, 0, 0 > 0.4 } rotate -x*100 rotate z*30 translate < 1, 1.6, -0.2 > } #declare Gfootr = union { sphere { < 0, 0, 0 > 1 clipped_by { box {<-1, 0, -1>, <1, 1, 1>} } } scale < 0.5, 0.5, 1 > translate < 0, -0.3, -0.5 > rotate x*30 translate < 0, -1.2, 0 > } #declare Gleg1r = union { cone { 0*y, 0.5, -1.4*y, 0.3 } union { Gfootr } scale < 1, 1, 1 > rotate -x*70 rotate z*0 translate < 0, -1.5, 0 > } #declare Glegr = union { cone { 0*y, 0.7, -1.5*y, 0.5 } union { Gleg1r } sphere {< 0, 0, 0 > 0.8 } sphere {< 0, -1.5, 0 > 0.6 } scale < 0.5, 1, 1 > rotate x*15 rotate z*0 translate < -1.2, 0, -0.3 > } #declare Gfootl = union { sphere { < 0, 0, 0 > 1 clipped_by { box {<-1, 0, -1>, <1, 1, 1>} } } scale < 0.5, 0.5, 1 > translate < 0, -0.3, -0.5 > rotate x*15 translate < 0, -1.2, 0 > } #declare Gleg1l = union { cone { 0*y, 0.5, -1.4*y, 0.3 } union { Gfootl } scale < 1, 1, 1 > rotate -x*50 rotate z*0 translate < 0, -1.5, 0 > } #declare Glegl = union { cone { 0*y, 0.7, -1.5*y, 0.5 } union { Gleg1l } sphere {< 0, 0, 0 > 0.8 } sphere {< 0, -1.5, 0 > 0.6 } scale < 0.5, 1, 1 > rotate x*30 rotate z*0 translate < 1.2, 0, -0.3 > } #declare Gbust = union { cone { 0.6*y, 1.3, 3*y, 0.3 } union { Ghead } union { Garmr } union { Garml } union { Glegr } union { Glegl } sphere {< 0, 0, 0 > 1.4 } rotate -x*0 rotate -y*15 } #declare Gtail1 = union { cone { 0*z, 0.6, 3*z, 0.1 } sphere {< 0, 0, 0 > 0.8 } sphere {< 0, 0, 3 > 0.1 } rotate -x*50 rotate -z*60 translate < 0, 0, 3 > } #declare Gtail = union { union { Gtail1 } cone { 0.7*z, 1.2, 3*z, 0.6 } rotate x*40 rotate z*10 } union { union { Gbust } union { Gtail } pigment { color red 1.0 green 0.8 blue 0.6 } finish { ambient 0.2 diffuse 0.8 phong 0.8 } no_shadow rotate -x*20 rotate z*0 }