#include "colors.inc" #include "metals.inc" #include "finish.inc" #include "golds.inc" #include "math.inc" #include "woods.inc" #include "shapes.inc" #include "textures.inc" #include "glass.inc" global_settings { max_trace_level 30 //ambient_light rgb <1, 1, 1> radiosity { pretrace_start 0.08 pretrace_end 0.04 count 1 nearest_count 1 error_bound .0015 recursion_limit 2 low_error_factor 0.5 gray_threshold 0.0 minimum_reuse 0.000001 brightness 1 adc_bailout 0.01/2 } } #declare lensR_curve = 2; #declare lensthick = .2; #declare lensRadius =1; #declare lens = intersection{ sphere { <0, 0, -(lensR_curve-.5*lensthick)>, lensR_curve } sphere { <0, 0, +(lensR_curve-.5*lensthick)>, lensR_curve } cylinder { <0, 0, -lensR_curve>, <0, 0, lensR_curve>, lensRadius } } #declare screen=box { <-1, -1, 0>, <1, 1, .0001> texture{pigment{color White} finish { phong 0.9 phong_size 60 diffuse 1.5} #declare flength = 1/((1.5-1)*(1/lensR_curve+1/lensR_curve)); #declare s = flength*(1.4+1.6*clock); #declare sp = s*flength/(s-flength); }} camera { location 40*<10, .2 ,-8> look_at <0, 0, 0> angle 1.25 } //ambient illumination is too dark light_source {10*<5,+5,.1> color <1,1,1>} object { lens texture{T_Green_Glass} interior{I_Glass} translate <0, 0, 0> } object { screen scale .4*<3,3,1> translate 3.5*z} /*text { ttf "Times" "test text" .005, 0 scale 2.5 translate <-3,-.8,-4.5> pigment{ color rgbf <1,1,0,0> } finish { phong .8 phong_size 200 ambient 2 } } */ //the object union{ cylinder { <0, 0, 0>, <0, .75, 0>, .05 } cone { <0, .75, 0>, .2, <0, 1, 0>, .0001 } pigment{color <1,1,0>} finish { phong .6 phong_size 200 ambient 20 } scale <.75,.75,.75> translate -s*z } cylinder { <0, 0, -10>, <0, 0, 10>, .015 translate -lensRadius*y*0 pigment { checker color Black, color White scale <10,10,.5> } //translate -y*(lensRadius+.2) } sky_sphere { pigment { color Black } rotate -105*x rotate y*90 }