/////////////////////////////////////////////////////////////////////////////// // // // Persistence of Vision Ray Tracer Scene Description File // // // /////////////////////////////////////////////////////////////////////////////// // // // File: FuturamaBender.pov // // Vers: 3.5 // // Desc: // // Date: Viernes, 14 de Noviembre de 2003, 10:12:52 Hs // // Auth: Ricardo Miguel Pereyra - pereyrag@imagen-net.com.ar // // // /////////////////////////////////////////////////////////////////////////////// #include "colors.inc" #include "metals.inc" #include "spline.mcr" global_settings { /* radiosity { pretrace_start 0.08 pretrace_end 0.04 count 400 nearest_count 5 error_bound 1.8 recursion_limit 3 low_error_factor .5 gray_threshold 0.0 minimum_reuse 0.015 brightness 1 adc_bailout 0.01/2 } */ } /////////////////////////////////////////////////////////////////////////////// #declare Brushed_Aluminum = texture { pigment { rgb <0.658824, 0.658824, 0.658824> } finish { ambient 0.3 diffuse 0.7 reflection 0.15 brilliance 8 specular 0.8 roughness 0.1 } normal { bumps -0.5 scale 0.0001 } } /////////////////////////////////////////////////////////////////////////////// camera { location <0.0, 0.75, -0.08> look_at <0.0, 0.75, -0.265> right x*image_width/image_height angle 25 } /////////////////////////////////////////////////////////////////////////////// difference { box { <-3.1, -1.1, -3.1>,<3.1, 2.1, 3.1> } box { <-3.0, -1.001, -3.0>,<3.0, 2.0, 3.0> } pigment { rgb <0.1, 1.0, 0.1> } } box { <-3.001,-1.0, -1.001>,<3.001, -1.0, 3.001> pigment { checker rgb 1, rgb 0 scale 0.5 } } light_source { <-1.9, 1.30, -1.9> color rgb <1.0, 1.0, 1.0> } light_source { <1.9, 1.30, -1.9> color rgb <1.0, 1.0, 1.0> } light_source { <-1.9, 1.30, 1.9> color rgb <1.0, 1.0, 1.0> } light_source { <1.9, 1.30, 1.9> color rgb <1.0, 1.0, 1.0> } light_source { 0*x color rgb 1.0 area_light <1.0, 0, 0> <0, 0, 1.0> 8, 8 adaptive 0 jitter orient translate <-0.5, 2.99, -0.5> media_interaction on media_attenuation on } light_source { <0,2.99,1.49> rgb 2 spotlight point_at <0,0,0> radius .9 falloff 40 jitter media_interaction on media_attenuation on fade_distance 1.20 fade_power .25 } light_source { <0,2.99,-1.49> rgb 1 spotlight point_at <0,0,0> radius .3 falloff 40 jitter media_interaction on media_attenuation on fade_distance 1.20 fade_power 2.5 } /////////////////////////////////////////////////////////////////////////////// #declare Base_Cabeza = union { sphere { y*0.0, 0.07 translate y*.08175 } cylinder { y*-0.08175, y*0.08175, 0.07 } texture { Brushed_Aluminum } translate y*-0.035 } #declare Base_Cabeza_Sin_Boca = difference { object { Base_Cabeza } union { cylinder { x*-0.1, x*0.1, 0.02 translate <0.0, -0.07, -0.035>} box { <-0.1, -0.02, 0.0>, <0.1, 0.02, 0.03> translate <0.0, -0.07, -0.07>} texture { Brushed_Aluminum } } } #declare Dientes = union { cylinder { y*0.021, y*0.0075, 0.068 pigment { radial color_map { [0.0 Black][0.07 Black][0.071 Yellow*2][0.5 Yellow*2] } frequency 15 } } cylinder { y*0.0075, y*0.0065, 0.0681 pigment { color 0 } } cylinder { y*0.0065, y*-0.0065, 0.068 pigment { radial color_map { [0.0 Black][0.07 Black][0.071 Yellow*2][0.5 Yellow*2] } frequency 15 } } cylinder { y*-0.0065, y*-0.0075, 0.0681 pigment { color 0 } } cylinder { y*-0.0075, y*-0.021, 0.068 pigment { radial color_map { [0.0 Black][0.07 Black][0.071 Yellow*2][0.5 Yellow*2] } frequency 15 } } translate y*-0.07 } #declare Antena = union { cone { y*0.05, 0.004, y*-0.05, 0.009 } sphere { 0.0, 0.012 translate y*0.04 } sphere { 0.0, 0.011 scale <2.0, 1.0, 2.0> translate y*-0.055 } texture { Brushed_Aluminum } translate y*0.1667 } #declare Base_Visor = union { cylinder { <-0.045, 0.0, 0.02>, <-0.045, 0.0, -0.02>, 0.032 } cylinder { <0.045, 0.0, 0.02>, <0.045, 0.0, -0.02>, 0.032 } box { <-0.045, -0.032, 0.02>, <0.045, 0.032, -0.02> } cylinder { <-0.045, 0.0, 0.02>, <0.045, 0.0, 0.02>, 0.032 } sphere { <-0.045, 0.0, 0.02>, 0.032 } sphere { <0.045, 0.0, 0.02>, 0.032 } } #declare Visor = difference { object { Base_Visor texture { Brushed_Aluminum } } object { Base_Visor scale <0.9, 0.8, 1.0> translate z*-0.01 } } #declare Base_Cabeza_Sin_Boca_Visor = difference { object { Base_Cabeza_Sin_Boca } object { Base_Visor translate y*0.01 translate z*-0.06 } } #declare OjO = union { difference { sphere { <0.0, 0.0, 0.0> 0.025 pigment { color Yellow*2 } } cylinder { z*0.026, z*-0.026, 0.005 pigment { color rgb 0 } } } intersection { sphere { <0.0, 0.0, 0.0> 0.025 } cylinder { z*0.026, z*-0.026, 0.005 } } translate z*-0.06 } #declare OjOs = union { object{ OjO translate x*-0.03 } object{ OjO translate x*0.03 } } #declare Visor_OjOs = union { object { Visor translate z*-0.06 } object { OjOs } translate y*0.01 } #declare Cabeza = union { object { Base_Cabeza_Sin_Boca_Visor } object { Dientes } object { Antena } object { Visor_OjOs } translate y*0.11675 } /////////////////////////////////////////////////////////////////////////////// #declare Base_Tronco = union { cone { y*0.025, 0.073, y*-0.025, 0.14 translate y*0.175 } cone { y*0.15, 0.14, y*-0.15, 0.1 } translate y*-0.0125 } #declare Base_Tronco_Hueco = difference { object { Base_Tronco } object { Base_Tronco scale 0.9 } } #declare Tapa_Negativa = difference { intersection { difference { object { Base_Tronco scale 1.1 } object { Base_Tronco scale 0.8 } } prism { linear_sweep linear_spline -1.9, 1.9, 5, <-0.09, 0.10>, <0.09, 0.10>, <0.05, -0.10>, <-0.05, -0.10>, <-0.09, 0.10> rotate x*-90 } } box { <-0.15, -0.15, 0.0>, <0.15, 0.15, 0.15> } } #declare Base_Tronco_Hueco_Sin_Tapa = difference { object { Base_Tronco_Hueco } object { Tapa_Negativa } texture { Brushed_Aluminum } } #declare Tapa = intersection { object { Base_Tronco_Hueco } object { Tapa_Negativa } texture { Brushed_Aluminum } scale <0.99, 0.99, 1.0> } /////////////////////////////////////////////////////////////////////////////// #declare Dedo1 = difference { torus { 0.02, 0.005 } box { 0.0, 0.5 translate <0.0, -0.25, -0.25> } rotate x*90 } #declare Dedo2 = union { object { Dedo1 } sphere { y*0.02, 0.005 } } #declare Dedos = union { object { Dedo2 rotate z*45 translate <-0.0, 0.02, 0.0> } object { Dedo2 rotate z*45 rotate y*120 translate <-0.0, 0.02, 0.0> } object { Dedo2 rotate z*45 rotate y*240 translate <-0.0, 0.02, 0.0> } } #declare Brazo_Der = #declare ObjectSpline = create_spline (array[3]{ <0.0, 0.0, 0.0>,<0.0, -0.1, -0.15>,<0.05, 0.05, -0.30> },create_default_spline+spline_tension(-1)) union { difference { union { pipe_spline (ObjectSpline, spline_radius (0.015)) } #declare link_object = torus {1.7, 0.3 rotate z*90 } union { link_spline (ObjectSpline,+ spline_step_twist (0)) } } sphere { <-0.0, 0.0, 0.0>, 0.03 } union { cone { y*0.015, 0.03, y*-0.015, 0.02 } object { Dedos translate y*0.005 } rotate z*-12 translate <0.05, 0.05, -0.3> } texture { Brushed_Aluminum } rotate z*-30 } #declare Brazo_Izq = #declare ObjectSpline = create_spline (array[3]{ <0.0, 0.0, 0.0>,<0.0, -0.1, -0.15>,<-0.05, 0.05, -0.30> },create_default_spline+spline_tension(-1)) union { difference { union { pipe_spline (ObjectSpline, spline_radius (0.015)) } #declare link_object = torus {1.7, 0.3 rotate z*90 } union { link_spline (ObjectSpline,+ spline_step_twist (0)) } } sphere { <0.0, 0.0, 0.0>, 0.03 } union { cone { y*0.015, 0.03, y*-0.015, 0.02 } object { Dedos translate y*0.005 } rotate z*12 translate <-0.05, 0.05, -0.3> } texture { Brushed_Aluminum } rotate z*30 } #declare SplinePataD = create_spline ( array[7] { <0.0, 0.30, 0.0>, <-0.05, 0.15, 0.075>, <0.0, 0.0, 0.0>, <-0.05, -0.15, -0.075>, <0.0, -0.30, 0.0>, <-0.05, -0.45, 0.075>, <0.0, -0.60, 0.0> }, create_default_spline + spline_tension(-1) ) #declare Pata_Der = union { difference { union { pipe_spline (SplinePataD, spline_radius (0.015)) } union { box { <-0.1, 0.0, -0.31>, <0.1, 0.35, 0.31> } box { <-0.1, -0.28, -0.5>, <0.1, -0.65, 0.5>} } } difference { sphere { <0.0, 0.0, 0.0>, 0.03 } box { -0.05, 0.05 translate y*-0.05 } scale <1.0, 1.0, 1.3> translate <0.0, -0.30, 0.0> } texture { Brushed_Aluminum } translate <-0.05, -0.15, 0.0> } #declare SplinePataI = create_spline ( array[7] { <0.0, 0.30, 0.0>, <0.05, 0.15, 0.075>, <0.0, 0.0, 0.0>, <0.05, -0.15, -0.075>, <0.0, -0.30, 0.0>, <0.05, -0.45, 0.075>, <0.0, -0.60, 0.0> }, create_default_spline + spline_tension(-1) ) #declare Pata_Izq = union { difference { union { pipe_spline (SplinePataI, spline_radius (0.015)) } union { box { <-0.1, 0.0, -0.31>, <0.1, 0.35, 0.31> } box { <-0.1, -0.28, -0.5>, <0.1, -0.65, 0.5>} } } difference { sphere { <0.0, 0.0, 0.0>, 0.03 } box { -0.05, 0.05 translate y*-0.05 } scale <1.0, 1.0, 1.3> translate <0.0, -0.30, 0.0> } texture { Brushed_Aluminum } translate <0.05, -0.15, 0.0> } /////////////////////////////////////////////////////////////////////////////// #declare Bender = union { object { Cabeza translate y*0.175 } object { Base_Tronco_Hueco_Sin_Tapa } object { Tapa } object { Brazo_Der translate <-0.147, 0.1, 0.0>} object { Brazo_Izq translate <0.147, 0.1, 0.0> } object { Pata_Der } object { Pata_Izq } } /////////////////////////////////////////////////////////////////////////////// object { Bender translate y*0.45 } union { sphere { <0.0, 0.3, -0.30>, 0.035 } difference { sphere { 0.0, 0.01 } box { 0.0, -0.5 translate <0.25, 0.0, 0.25> } scale <5.0, 1.0, 5.0> translate <0.0, 0.145, -0.30> } cone { <0.0, 0.146, -0.30>, 0.01 <0.0, 0.3, -0.30>, 0.001 } texture { T_Chrome_1D } translate y*0.45 }