#version 3.7; global_settings { assumed_gamma 0.7 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 } } background { color rgb <0.00, 0.00, 0.00> } camera { location <4.5, 9.3, -9.5> look_at <0, 0.90, 1> angle 38 } light_source { <7, 9, -6> color rgb <1.00, 0.98, 0.95> * 1.05 area_light <1.4,0,0>, <0,0,1.4>, 4, 4 adaptive 1 jitter } light_source { <-5, 5, -2> color rgb <0.55, 0.70, 1.00> * 0.55 } light_source { <0, 3.2, 6.5> color rgb <0.30, 0.90, 0.95> * 1.10 } // Backlight to reveal translucency through the stained glass light_source { <0.0, 2.1, 5.2> color rgb <0.75, 0.95, 1.00> * 3.2 area_light <1.8,0,0>, <0,1.3,0>, 5, 4 adaptive 1 jitter } sky_sphere { pigment { gradient y color_map { [0.00 color rgb <0.02, 0.03, 0.05>] [0.55 color rgb <0.03, 0.04, 0.06>] [1.00 color rgb <0.08, 0.10, 0.13>] } } } plane { y, 0 texture { pigment { color rgb <0.085, 0.09, 0.105> } finish { diffuse 0.9 specular 0.18 roughness 0.055 reflection 0.04 } } } // Bright panel behind the glass to show transmission box { <-2.2, 0.15, 2.35>, <2.2, 3.0, 2.42> texture { pigment { gradient y color_map { [0.00 color rgb <0.02, 0.18, 0.20>] [0.30 color rgb <0.18, 0.78, 0.85>] [1.00 color rgb <0.95, 1.00, 1.00>] } scale 2.3 } finish { diffuse 1.15 specular 0.0 emission 0.25 } } no_shadow } // --------------------- // Cyan fractal-ish stained-glass // --------------------- #declare FractalField = pigment { function { abs( sin(2.2*x + 0.7*z) + 0.65*sin(2.0*z + 0.8*y) + 0.55*cos(2.4*x - 1.3*y) + 0.20*sqrt(abs( (x*x - z*z + 0.34)*(x*x - z*z + 0.34) + (2*x*z + 0.52)*(2*x*z + 0.52) + 0.30*y*y )) ) } turbulence 0.35 scale 1.00 rotate <0, 25, 0> color_map { [0.00 color rgb <0.00, 0.05, 0.09>] [0.18 color rgb <0.00, 0.16, 0.26>] [0.42 color rgb <0.00, 0.48, 0.60>] [0.64 color rgb <0.00, 0.84, 0.93>] [0.84 color rgb <0.35, 0.99, 1.00>] [1.00 color rgb <0.96, 1.00, 1.00>] } } #declare LeadLines = pigment { crackle metric 2.0 turbulence 0.18 scale 0.11 color_map { [0.00 color rgb <0.02, 0.02, 0.025>] [0.06 color rgb <0.06, 0.06, 0.07>] [0.09 color rgb <0.22, 0.22, 0.24>] [1.00 color rgb <0.40, 0.40, 0.42>] } } #declare StainedColor = pigment { // Control pattern first, then pigment_map entries: crackle metric 2.0 turbulence 0.18 scale 0.11 pigment_map { [0.00 FractalField] [0.78 FractalField] [0.90 color rgb <0.10, 0.10, 0.11>] [1.00 color rgb <0.03, 0.03, 0.035>] } } #declare StainedGlassTexture = texture { pigment { StainedColor // more translucent: most of the effect comes from filter + interior absorption color rgbf <1,1,1, 0.90> } normal { average normal_map { [1 bumps 0.18 scale 0.05] [1 wrinkles 0.06 scale 0.20] } } finish { diffuse 0.01 specular 0.95 roughness 0.008 reflection 0.08 conserve_energy } } #declare LeadOverlayTexture = texture { pigment { LeadLines // slightly opaque lead; keep subtle so color dominates color rgbf <1,1,1, 0.15> } finish { diffuse 0.15 specular 0.25 roughness 0.06 reflection 0.02 } } #declare GlassInterior = interior { ior 1.52 // absorption for stained glass depth (cyan) fade_distance 0.45 fade_power 1.15 fade_color <0.00, 0.70, 0.85> caustics 0.25 } #declare HalfSize = 1.15; #declare Height = 1.65; #declare Thick = 0.06; // Stained glass box (hollow shell) difference { box { <-HalfSize, 0, -HalfSize>, } box { <-HalfSize+Thick, Thick, -HalfSize+Thick>, } texture { StainedGlassTexture } texture { LeadOverlayTexture } interior { GlassInterior } hollow translate <0, 0.01, 0> } // Base plinth box { <-0.55, 0.02, -0.55>, <0.55, 0.085, 0.55> texture { pigment { color rgb <0.05, 0.05, 0.055> } finish { diffuse 0.75 specular 0.25 roughness 0.06 reflection 0.06 } } translate <0, 0.01, 0> } // Inner “gem” to show refraction through the translucent box sphere { <0, 0.62, 0>, 0.23 texture { pigment { color rgbf <0.40, 0.95, 1.00, 0.92> } finish { diffuse 0.005 specular 0.98 roughness 0.006 reflection 0.10 conserve_energy } } interior { ior 1.50 fade_distance 0.45 fade_power 1.1 fade_color <0.10, 0.65, 0.80> caustics 0.22 } }