// Evening beach: glass sphere on marble box in sand #version 3.7; global_settings { assumed_gamma 1.8 max_trace_level 16 radiosity { pretrace_start 0.08 pretrace_end 0.01 count 200 nearest_count 10 error_bound 0.5 recursion_limit 2 low_error_factor 0.5 gray_threshold 0.0 } } #default { finish { ambient 0 diffuse 1 } } // ---------- Background / Sky (evening gradient) ---------- sky_sphere { pigment { gradient y color_map { [0.00 color rgb <0.98, 0.60, 0.34>] // warm horizon [0.20 color rgb <0.92, 0.70, 0.55>] [0.55 color rgb <0.55, 0.70, 0.90>] [1.00 color rgb <0.18, 0.24, 0.45>] // deep upper sky } scale 2 translate -1 } } background { color rgb <0.02, 0.03, 0.05> } // fallback // ---------- Camera ---------- camera { location <0.0, 1.65, -8.4> look_at <0.0, 0.75, 0.0> angle 35 up <0,9,0> right <16,0,0> // right,up -> 16:9 } // ---------- Lights (warm + soft shadows) ---------- light_source { <35, 8, -45> // low-ish sun direction color rgb <1.00, 0.78, 0.52>*1.25 area_light <3.5,0,0>, <0,0,3.5>, 7, 7 adaptive 1 jitter } light_source { <-10, 10, -8> // soft sky fill color rgb <0.90, 0.92, 1.00>*0.30 area_light <2.2,0,0>, <0,0,2.2>, 6, 6 adaptive 1 jitter } // ---------- Materials (simple, fast) ---------- #declare Mat_Sand = texture { pigment { // subtle grain + color variation bozo color_map { [0.00 color rgb <0.86, 0.78, 0.62>] [0.55 color rgb <0.82, 0.74, 0.58>] [1.00 color rgb <0.76, 0.68, 0.52>] } scale 0.25 } finish { diffuse 0.95 specular 0.06 roughness 0.10 } } #declare Mat_Water = texture { pigment { color rgb <0.08, 0.20, 0.30> } finish { diffuse 0.25 specular 0.35 roughness 0.02 reflection 0.12 } } #declare Mat_Marble = texture { pigment { marble color_map { [0.00 color rgb <0.92, 0.92, 0.94>] [0.35 color rgb <0.82, 0.83, 0.86>] [0.65 color rgb <0.95, 0.95, 0.97>] [1.00 color rgb <0.78, 0.80, 0.84>] } scale 0.75 turbulence 0.25 } finish { diffuse 0.80 specular 0.25 roughness 0.02 reflection 0.05 } } #declare Mat_Glass = texture { pigment { color rgbt <1,1,1,0.92> } // mostly transparent finish { diffuse 0.05 specular 0.65 roughness 0.004 reflection 0.10 } } #declare Int_Glass = interior { ior 1.52 } // ---------- Geometry: beach ground (sand) ---------- plane { y, 0 texture { Mat_Sand } // light dunes (kept subtle for speed) normal { bumps 0.35 scale 0.45 } } // Ocean plane slightly lower, starting far away (simple intersection) intersection { plane { y, -0.03 } box { <-200, -10, 20>, <200, 10, 400> } texture { Mat_Water } normal { ripples 0.20 scale 1.6 } } // ---------- Central object: marble box partially in sand ---------- #declare Box_Min = <-1.05, 0.00, -1.05>; #declare Box_Max = < 1.05, 0.62, 1.05>; // Sink the box a bit into sand by lowering it #declare Box_Drop = -0.06; box { Box_Min + <0,Box_Drop,0>, Box_Max + <0,Box_Drop,0> texture { Mat_Marble } } // ---------- Glass sphere sitting precisely on box top ---------- #declare Sphere_R = 0.80; #declare Box_TopY = (Box_Max.y + Box_Drop); // top after drop #declare Sphere_CenterY = Box_TopY + Sphere_R; // exact contact sphere { <0, Sphere_CenterY, 0>, Sphere_R texture { Mat_Glass } interior { Int_Glass } } // ---------- Slight darkening near horizon (atmosphere hint) ---------- fog { distance 45 color rgb <0.95, 0.72, 0.55> fog_type 2 fog_offset 0.2 fog_alt 1.2 }