#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 12 } background { color rgb <0.02, 0.03, 0.05> } sky_sphere { pigment { gradient y color_map { [0.0 color rgb <0.04, 0.05, 0.08>] [1.0 color rgb <0.02, 0.03, 0.05>] } } } camera { location <0.0, 2.10, -6.10> look_at <0.0, 1.20, 0.0> angle 38 } #declare MoodFloorTex = texture { pigment { color rgb <0.075, 0.083, 0.105> } finish { diffuse 0.80 reflection 0.06 specular 0.12 roughness 0.07 } } plane { y, 0 texture { MoodFloorTex } } // --- Atmospheric haze (subtle, fast) --- #declare Atmos = interior { media { scattering { 1, rgb <0.18, 0.24, 0.32>*0.12 } absorption rgb <0.10, 0.12, 0.16>*0.05 samples 3, 6 method 3 } } box { <-12, 0, -16>, <12, 8.5, 8> hollow interior { Atmos } pigment { rgbt 1 } } // --- Lights (balanced to show translucency + bumps) --- light_source { <7.0, 7.4, -7.5> color rgb <1.00, 0.98, 0.94>*1.10 area_light <1.0,0,0>, <0,0,1.0>, 5, 5 adaptive 1 jitter media_interaction on media_attenuation on } light_source { <-6.6, 4.2, -1.2> color rgb <0.35, 0.85, 1.00>*0.70 media_interaction on media_attenuation on } light_source { <0.0, 6.0, 2.8> color rgb <0.30, 0.55, 1.00>*0.32 media_interaction on media_attenuation on } // Kicker for crisp highlight definition light_source { <0.0, 2.4, -3.1> color rgb <1.0, 1.0, 1.0>*0.26 media_interaction on media_attenuation on } // --- Fractal-like bumped normal (fast + supported) --- #declare FractalBump = normal { average normal_map { [1.00 crackle metric 2 offset 0.10 form <0.45, 0.10, 0.45> scale 0.42 rotate <20, -25, 10> bump_size 0.55 ] [0.85 wrinkles scale 0.18 rotate <0, 35, 0> bump_size 0.28 ] } } // --- Proper layered pigments (no pigment_map misuse) --- #declare CoolFractalPigment = pigment { average pigment_map { [0.72 pigment { julia <0.25, 0.52> iterations 10 color_map { [0.00 rgbf <0.04, 0.18, 0.28, 0.86>] [0.55 rgbf <0.14, 0.58, 0.86, 0.82>] [1.00 rgbf <0.82, 0.96, 1.00, 0.88>] } scale 1.10 rotate <0, 28, 0> }] [0.28 pigment { crackle metric 2 offset 0.12 color_map { [0.00 rgbf <0.02, 0.08, 0.12, 0.90>] [1.00 rgbf <0.42, 0.92, 1.00, 0.80>] } scale 0.60 rotate <0, -12, 0> }] } } #declare WarmFractalPigment = pigment { average pigment_map { [0.72 pigment { julia <0.18, 0.55> iterations 10 color_map { [0.00 rgbf <0.30, 0.06, 0.04, 0.85>] [0.55 rgbf <1.00, 0.40, 0.14, 0.82>] [1.00 rgbf <1.00, 0.95, 0.88, 0.88>] } scale 1.05 rotate <12, -14, 0> }] [0.28 pigment { crackle metric 2 offset 0.10 color_map { [0.00 rgbf <0.12, 0.04, 0.03, 0.90>] [1.00 rgbf <1.00, 0.78, 0.35, 0.78>] } scale 0.66 rotate <0, 18, 0> }] } } // --- Sphere materials: translucent + fractal + bumped --- #declare Mood_FractalCool_Tex = texture { pigment { CoolFractalPigment } normal { FractalBump } finish { diffuse 0.02 specular 0.92 roughness 0.010 reflection { 0.10, 0.45 fresnel on } conserve_energy } } #declare Mood_FractalWarm_Tex = texture { pigment { WarmFractalPigment } normal { FractalBump bump_size 0.62 scale 0.58 } finish { diffuse 0.02 specular 0.88 roughness 0.012 reflection { 0.08, 0.38 fresnel on } conserve_energy } } // Interiors: fade for volume tint + ior, with low-cost media for glow/absorption #declare CoolMediaInterior = interior { ior 1.42 fade_distance 1.20 fade_power 2 fade_color rgb <0.06, 0.40, 0.55> caustics 0.22 media { emission rgb <0.10, 0.45, 0.65>*0.12 absorption rgb <0.10, 0.18, 0.25>*0.14 samples 3, 6 method 3 } } #declare WarmMediaInterior = interior { ior 1.38 fade_distance 1.00 fade_power 2 fade_color rgb <0.85, 0.25, 0.10>*0.78 caustics 0.20 media { emission rgb <0.95, 0.42, 0.16>*0.10 absorption rgb <0.25, 0.12, 0.10>*0.14 samples 3, 6 method 3 } } #declare Mood_FractalCool_Interior = interior { ior 1.42 fade_distance 1.20 fade_power 2 fade_color rgb <0.06, 0.40, 0.55> caustics 0.18 } #declare Mood_FractalWarm_Interior = interior { ior 1.38 fade_distance 1.00 fade_power 2 fade_color rgb <0.85, 0.25, 0.10>*0.78 caustics 0.16 } #declare StandTex = texture { pigment { color rgb <0.055, 0.058, 0.065> } finish { diffuse 0.92 specular 0.06 roughness 0.13 } } union { // Main sphere 1 (cool, translucent fractal bumped) sphere { <-0.40, 1.25, 0.05>, 1.05 texture { Mood_FractalCool_Tex } hollow interior { CoolMediaInterior } } // Main sphere 2 (warm, translucent fractal bumped) sphere { <0.62, 1.10, -0.15>, 0.65 texture { Mood_FractalWarm_Tex } hollow interior { WarmMediaInterior } } // Orbiting droplets (cool translucent bumped) sphere { <-1.08, 1.56, 0.25>, 0.13 texture { Mood_FractalCool_Tex } hollow interior { Mood_FractalCool_Interior } } sphere { < 1.00, 1.72, -0.05>, 0.11 texture { Mood_FractalCool_Tex } hollow interior { Mood_FractalCool_Interior } } sphere { < 0.10, 2.12, 0.60>, 0.09 texture { Mood_FractalCool_Tex } hollow interior { Mood_FractalCool_Interior } } // Matte stand / anchor cylinder { <0, 0.01, 0>, <0, 0.19, 0>, 0.58 texture { StandTex } } rotate <0, -12, 0> }