// Persistence of Vision Scene Description // // Different kinds of refracting lenses. global_settings { max_trace_level 10 photons { count 1000000 media 1000,1 max_trace_level 10 } } camera { orthographic location z*-100 angle 60 } light_source { z*100 color rgb 1 } // Box containing "smoke" box { <-100, -100, -10>, <100,100,10> hollow pigment { color rgbt 1 } interior { media { scattering { 1, rgb .1 extinction 1 } intervals 1 samples 5 } } // photons { target on } } #declare rgb_spots = union { light_source { <-50, 0, 0> red 1000 cylinder point_at 0 radius 0.25 falloff 0.25 photons { reflection on refraction on } //media_attenuation off translate y*2 } light_source { <-50, 0, 0> green 1000 cylinder point_at 0 radius 0.25 falloff 0.25 photons { reflection on refraction on } //media_attenuation off } light_source { <-50, 0, 0> blue 1000 cylinder point_at 0 radius 0.25 falloff 0.25 photons { reflection on refraction on } // media_attenuation off translate y*-2 } } //object { rgb_spots translate y*20 } #declare Full_Convex = union { object { rgb_spots } sphere { 0,3.5 material { texture { pigment { color rgbt 1 } finish { reflection 0 } } interior { ior 1.5 } } photons { target on reflection on refraction on collect off } scale <0.25,1,1> translate x*-40 } translate y*0 } #declare Half_Convex = union { object { rgb_spots } intersection { sphere { 0,3.5 } cylinder { x*3.6, 0, 3.5 } material { texture { pigment { color rgbt 1 } finish { reflection 0 } } interior { ior 1.5 } } photons { target on reflection on refraction on collect off } scale <0.25,1,1> translate x*-40 } translate y*0 } #declare Half_Convex2 = union { object { rgb_spots } intersection { sphere { 0,3.5 } cylinder { x*-3.6, 0, 3.5 } material { texture { pigment { color rgbt 1 } finish { reflection 0 } } interior { ior 1.5 } } photons { target on reflection on refraction on collect off } scale <0.25,1,1> translate x*-40 } translate y*0 } #declare Concave = union { object { rgb_spots } intersection { cylinder { x*-3.6, x*3.6 , 3.5 } sphere { x*3.7,3.6 inverse} sphere { x*-3.7,3.6 inverse} material { texture { pigment { color rgbt 1 } finish { reflection 0 } } interior { ior 1.5 } } photons { target on reflection on refraction on collect off } scale <0.25,1,1> translate x*-40 } translate y*0 } #declare Half_Concave1 = union { object { rgb_spots } intersection { cylinder { x*-3.6, x*3.6 , 3.5 } sphere { x*3.7,3.6 inverse} material { texture { pigment { color rgbt 1 } finish { reflection 0 } } interior { ior 1.5 } } photons { target on reflection on refraction on collect off } scale <0.25,1,1> translate x*-40 } translate y*0 } #declare Half_Concave2 = union { object { rgb_spots } intersection { cylinder { x*-3.6, x*3.6 , 3.5 } sphere { x*-3.7,3.6 inverse} material { texture { pigment { color rgbt 1 } finish { reflection 0 } } interior { ior 1.5 } } photons { target on reflection on refraction on collect off } scale <0.25,1,1> translate x*-40 } translate y*0 } //object { Half_Convex translate y*40} //object { Full_Convex translate y*30} //object { Half_Convex2 translate y*20} object { Half_Concave2 translate y*40} //object { rgb_spots translate y*-20 }