#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 12 } background { color rgb <0.03, 0.04, 0.06> } camera { location <3.4, 2.2, -4.9> look_at <0, 0.85, 0> 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.50 } light_source { <0, 3.2, 6.5> color rgb <0.30, 0.90, 0.95> * 1.10 } plane { y, 0 texture { pigment { color rgb <0.09, 0.095, 0.11> } finish { diffuse 0.85 specular 0.12 roughness 0.06 reflection 0.03 } } } // --- Fractal-like cyan pattern (POV-Ray compatible) --- // Using a function pigment based on an isosurface Julia set formula. // This avoids the "max_iteration" syntax error from the prior file. #declare FractalCyan = pigment { function { // Fractal-ish field, mapped to colors via color_map below. // Works as a texture pigment; no iteration keywords required. // The function returns a scalar; color_map turns it into cyan glass. // (x,y,z) used; pattern depends on 3D position. // A Julia-style signed distance-ish function: // f = |z|^2 - r with some folding. // Keep it lightweight for quick iteration. 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.35*y*y ) ) } turbulence 0.20 scale 1.10 rotate <0, 20, 0> color_map { [0.00 color rgb <0.01, 0.02, 0.03>] [0.18 color rgb <0.00, 0.10, 0.14>] [0.40 color rgb <0.00, 0.35, 0.42>] [0.62 color rgb <0.00, 0.70, 0.78>] [0.82 color rgb <0.30, 0.98, 0.98>] [1.00 color rgb <0.92, 1.00, 1.00>] } } #declare LeadCracks = pigment { crackle metric 2.0 turbulence 0.12 scale 0.12 color_map { [0.00 color rgb <0.02, 0.02, 0.022>] [0.06 color rgb <0.06, 0.06, 0.065>] [0.12 color rgb <0.18, 0.18, 0.19>] [1.00 color rgb <0.26, 0.26, 0.27>] } } #declare StainedPig = pigment { average pigment_map { [0.78 FractalCyan] [0.22 LeadCracks] } } #declare StainedGlassTexture = texture { pigment { StainedPig } normal { bumps 0.35 scale 0.05 } finish { diffuse 0.03 specular 0.85 roughness 0.012 reflection 0.08 conserve_energy } } #declare GlassInterior = interior { ior 1.52 fade_distance 1.25 fade_power 1.35 fade_color <0.00, 0.72, 0.78> caustics 0.6 } #declare GlassMaterial = material { texture { StainedGlassTexture } // Extra transmission layer (keeps the pigment but still reads as glass) texture { pigment { color rgbt <1,1,1,0.78> } } interior { GlassInterior } } #declare HalfSize = 1.15; #declare Height = 1.65; #declare Thick = 0.06; difference { box { <-HalfSize, 0, -HalfSize>, } box { <-HalfSize+Thick, Thick, -HalfSize+Thick>, } material { GlassMaterial } translate <0, 0.01, 0> } box { <-0.55, 0.02, -0.55>, <0.55, 0.08, 0.55> texture { pigment { color rgb <0.05, 0.05, 0.055> } finish { diffuse 0.7 specular 0.25 roughness 0.06 reflection 0.05 } } translate <0, 0.01, 0> } sphere { <0, 0.55, 0>, 0.22 texture { pigment { color rgbt <0.95, 0.98, 1.0, 0.70> } finish { diffuse 0.03 specular 0.9 roughness 0.01 reflection 0.12 conserve_energy } } interior { ior 1.50 fade_distance 0.9 fade_power 1.2 fade_color <0.15, 0.40, 0.55> caustics 0.5 } }