// Persistence of Vision Ray Tracer 3.5 // File: .pov // Desc: // Date: // Auth: Trevor G Quayle global_settings { assumed_gamma 1.0 ambient_light 1 adc_bailout 0.000001 max_trace_level 50 } // // ******* I N C L U D E S ******* // // // ******* C A M E R A ******* // #declare LO=<-70,220,-170>; #declare LA=<0,50,0>; camera{ up y right x*image_width/image_height angle 45 location LO look_at LA } // // ******* L I G H T S ******* // #declare LB= sphere{0 80 hollow no_image photons {collect off pass_through} texture{pigment{rgb 1} finish{ambient 50}} } light_source{0 rgb 1 looks_like{LB} fade_power 2 fade_distance 500 translate LO//<-100,1000,-100> } // // ******* T E X T U R E S ******* // background {rgb 0} #default{finish{ambient 0 diffuse 0.7}} sky_sphere { pigment { gradient y color_map { [0.0 rgb <0.6,0.7,1.0>] [0.7 rgb <0.0,0.1,0.8>] } } } #macro TxtFit(p1,p2,FNam,Txt,Spac) #local T1=text{ttf FNam, Txt, 1,Spac*x} #local TMn = min_extent (T1); #local TMx = max_extent (T1); #local TScal=(p2-p1)/(TMx-TMn); object{T1 translate -TMn scale TScal translate p1} #end #declare TMug= texture{ pigment{ object{ union{ object{TxtFit(<0.15,10,36>,<0.35,85,50>,"povlogo.ttf","A",0)} object{TxtFit(<0.65,10,36>,<0.85,85,50>,"povlogo.ttf","A",0)} rotate x*90 } pigment{rgb <0.7,0.7,0.6>} pigment{rgb 0} } warp{cylindrical orientation y} } finish{ conserve_energy diffuse 0.825 reflection{0 1 fresnel on metallic 0} } normal{bumps .01 scale 5} } #declare PStain= pigment{ average pigment_map{ [crackle color_map{ [0.00 rgbf 1] [0.05 rgbf <0.5,0.4,0.2,0.75>] } scale <3,2,3>/100 ] [bozo turbulence 0.92 color_map{ [0.60 rgbf <0.5,0.4,0.2,0.75>] [0.90 rgbf 1] } scale <1,.01,1>/5 ] } } #declare TStain= texture{ pigment{ object{ cylinder{y*5 y*100 38} pigment{rgbf 1} pigment{ planar pigment_map{ [0.00 rgbf 1] [0.15 PStain] } scale 100 } } } finish{diffuse 0.25} } #declare MMug= material{ texture{TMug} texture{TStain} interior{ior 1.56} } #declare MCoffee= material{ texture{ pigment{rgbf <0.6, 0.4, 0.2,1>} finish{ conserve_energy diffuse 0.0 reflection { 0 1 fresnel on metallic 0 } } } interior{ ior 1.33 fade_distance 10 fade_power 1000 } } // // ******* O B J E C T S ******* // #declare CMug= union{ union{ difference{ cylinder{y y*95 40} cylinder{y*8 y*100 36} cylinder{y*6 y*100 34} torus{34 2 translate y*8} cylinder{0 y*2 34} torus{34 2 scale <1,1/2,1> translate y*1} } torus{38 2 scale <1,2,1> translate y*95} torus{38 2 scale <1,1/2,1> translate y*1} union{//Handle difference{ torus{34 4} intersection{ plane{-x 0 rotate y*30} plane{-x 0 rotate -y*30} } } sphere{x*34 4 rotate y*60} sphere{x*34 4 rotate -y*60} scale<20/34,2,1> rotate x*90 translate <-51,50,0> } material{MMug} } #declare T=0.01;//Tolerance between coffee and mug #declare F=0.85;//Coffee level (1=full, 0=empty) merge{//Coffee difference{ cylinder{<0,8,0> <0,8.001+85*F,0> 36-T} torus{32 4.2 translate y*(8.001+85*F)} cylinder{<0,8.001+85*F-4.2,0> <0,100,0> 32} } cylinder{<0,6+T,0> <0,10,0> 34} torus{34 2-T translate y*8} material{MCoffee} } } // // ******* S C E N E ******* // plane{-y 0 pigment{checker rgb 1 rgb 0} scale 25} object{CMug}