#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 8 } background { color rgb <0.96, 0.97, 0.99> } camera { location <0.0, 2.1, -5.2> look_at <0.0, 1.0, 0.0> angle 35 } light_source { <3, 6, -4> color rgb <1, 1, 1>*1.2 area_light <1.2,0,0>, <0,0,1.2>, 5, 5 adaptive 1 jitter } light_source { <-4, 4, -2> color rgb <1, 1, 1>*0.35 } plane { y, 0 texture { pigment { color rgb <0.92, 0.92, 0.94> } finish { diffuse 0.85 specular 0.05 roughness 0.06 } } } #declare T_CeramicWhite = texture { pigment { color rgb <0.98, 0.98, 0.985> } finish { diffuse 0.65 specular 0.45 roughness 0.02 reflection 0.05 } } #declare T_Saucer = texture { pigment { color rgb <0.97, 0.97, 0.98> } finish { diffuse 0.7 specular 0.5 roughness 0.02 reflection 0.06 } } #declare T_Coffee = texture { pigment { color rgb <0.10, 0.06, 0.03> } finish { diffuse 0.6 specular 0.55 roughness 0.015 reflection 0.08 } } #declare CupOuter = cylinder { <0,0.45,0>, <0,1.55,0>, 0.78 } #declare CupInner = cylinder { <0,0.52,0>, <0,1.48,0>, 0.68 } #declare CupBody = difference { object { CupOuter } object { CupInner } plane { y, 0.50 inverse } // open top texture { T_CeramicWhite } } #declare HandleOuter = torus { 0.42, 0.11 rotate <90,0,0> translate <0.86,1.05,0> } #declare HandleInner = torus { 0.42, 0.06 rotate <90,0,0> translate <0.86,1.05,0> } #declare Handle = difference { object { HandleOuter } object { HandleInner } // trim to a "C" shape box { <0.65,0.60,-1>, <2.0,1.50, 1> } box { <-2.0,0.60,-1>, <0.76,1.50, 1> inverse } texture { T_CeramicWhite } } #declare Saucer = union { difference { cylinder { <0,0.18,0>, <0,0.28,0>, 1.55 } cylinder { <0,0.19,0>, <0,0.30,0>, 1.32 } texture { T_Saucer } } torus { 1.42, 0.06 rotate <90,0,0> translate <0,0.22,0> texture { T_Saucer } } } #declare CoffeeSurface = cylinder { <0,1.44,0>, <0,1.445,0>, 0.675 texture { T_Coffee } } union { object { Saucer } object { CupBody } object { Handle } object { CoffeeSurface } // subtle grounding shadow helper (darken under cup) cylinder { <0,0.001,0>, <0,0.002,0>, 0.9 pigment { color rgbt <0,0,0,0.85> } finish { diffuse 0 } } translate <0,0,0> }