//sun - variations on a theme #declare cam_loc=0; #declare cam_az=0; #declare cam_pitch=20; #declare cam_ang=60; #declare cam_tran=transform{rotate<-cam_pitch,cam_az,0> translate cam_loc} #declare sun_az=10; #declare sun_ht=25; #declare sun_tran=transform{rotate <-sun_ht,sun_az,0>} #declare sun_ver=3; camera{ location <0,0,0> direction z up y right x*image_width/image_height angle cam_ang transform {cam_tran} } text { ttf "times.ttf", concat("Sun version ",str(sun_ver,1,0)), .01, 0 texture{pigment{color rgb<.4,.2,.2>}finish{ambient 1}} scale .11 rotate -x*50 translate <-.25,0,1> rotate x*(40-cam_pitch) } #declare blue_sky=color_map{ [0.0 rgb <0.65625, 0.71875, 0.875>*.75] [0.45 rgb <0.78125, 0.85938, 0.96875>] [0.5 rgb <0.8125, 0.90625, 0.96875>] [0.55 rgb <0.71875, 0.875, 0.96875>] [0.8 rgb <0.28125, 0.42188, 0.75>] [1.0 rgb <0.21875, 0.29688, 0.5625>] } #declare T=.05; #declare blue_sky_semitransparent=color_map{ [0.0 rgb <0.65625, 0.71875, 0.875>*.75 transmit T*0 filter -T*0 ] [0.45 rgb <0.78125, 0.85938, 0.96875> transmit T*.1 filter -T*0] [0.5 rgb <0.8125, 0.90625, 0.96875> transmit T*.1 filter -T*0] [0.55 rgb <0.71875, 0.875, 0.96875> transmit T*.5 filter -T*.5] [0.8 rgb <0.28125, 0.42188, 0.75> transmit T*.9 filter -T*.9] [1.0 rgb <0.21875, 0.29688, 0.5625> transmit T*1 filter -T*1 ] } #declare test_obj=cylinder{-y*5,y*50,1 pigment{color red 1} translate z*30 rotate y*sun_az+15} //object{test_obj} #if(sun_ver=1) sky_sphere{ pigment{//sky gradient y color_map{blue_sky} scale 2 translate -y*1 } pigment{//sun spherical color_map{[0 rgbt 1][.92 rgb 1]} poly_wave 2 translate z*1 transform{sun_tran} } } #end #if(sun_ver=2) sky_sphere{ pigment{//sky gradient y color_map{blue_sky} scale 2 translate -y*1 } } light_source{z*1000, rgb 1 transform{sun_tran}} sphere{ <0,0,0>, 1 hollow no_shadow scale <12,12,50,> translate z*49 pigment{rgbt 1} interior{ media{ scattering{1 rgb .015 extinction 1} } } transform{sun_tran} } #end #if(sun_ver=3) disc{ 0, z, 1 pigment{spherical color_map{[0 rgbt 1][.92 rgb 1]} poly_wave 2} finish{ambient 25} scale 750 translate z*1000 transform {sun_tran} } sphere{ 0, 1 pigment{//sky gradient y color_map{blue_sky_semitransparent} scale 2 translate -y*1 } finish{ambient 1} scale 50 } #end