#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 8 } background { color rgb <0.03, 0.035, 0.045> } camera { location <0, 2.2, -9.5> look_at <0, 1.25, 0> angle 42 } light_source { <-8, 9, -10> color rgb <1.0, 0.98, 0.95>*1.15 area_light <2.2,0,0>, <0,0,2.2>, 5, 5 adaptive 1 jitter } light_source { <8, 6, -6> color rgb <0.55, 0.65, 1.0>*0.55 } light_source { <0, 7, 6> color rgb <1,1,1>*0.25 } #declare M_Floor = texture { pigment { color rgb <0.08,0.085,0.09> } finish { reflection 0.10 specular 0.25 roughness 0.04 } } #declare M_Wall = texture { pigment { color rgb <0.06,0.065,0.075> } finish { diffuse 0.9 specular 0.12 roughness 0.08 } } #declare M_Frame = texture { pigment { color rgb <0.02,0.02,0.02> } finish { diffuse 0.2 specular 0.75 roughness 0.02 reflection 0.05 } } #declare M_Glass = texture { pigment { color rgbt <1,1,1,0.92> } finish { specular 0.85 roughness 0.01 reflection 0.08 } } #declare M_Pedestal = texture { pigment { color rgb <0.12,0.12,0.13> } finish { diffuse 0.75 specular 0.35 roughness 0.05 } } #declare M_HeroMetal = texture { pigment { color rgb <0.85,0.86,0.90> } finish { diffuse 0.12 specular 0.95 roughness 0.01 reflection 0.25 metallic } } #declare M_Accent = texture { pigment { color rgb <0.85, 0.35, 0.22> } finish { diffuse 0.6 specular 0.35 roughness 0.05 } } #declare WallZ = 2.2; union { plane { y, 0 texture { M_Floor } } box { <-6.5, 0.0, WallZ-0.15>, <6.5, 5.0, WallZ> texture { M_Wall } } difference { box { <-6.5, 0, WallZ-1.2>, <6.5, 1.6, WallZ> texture { M_Wall } } cylinder { <-7, 0.4, WallZ-1.2>, <7, 0.4, WallZ-1.2>, 1.35 rotate <90,0,0> } } } // Returns a pigment pattern body (not a nested pigment block) #macro ArtPigment(SeedVal, HueShift) #local R = seed(SeedVal); marble turbulence 0.9 omega 0.65 lambda 2.1 scale <0.6, 0.35, 0.6> rotate <0, 90*HueShift, 0> translate color_map { [0.00 rgb <0.06,0.08,0.12>] [0.35 rgb <0.15,0.30,0.55>] [0.65 rgb <0.85,0.35,0.22>] [1.00 rgb <0.98,0.96,0.90>] } #end #macro MakeFrame(Center, W, H, ArtVariant) union { difference { box { <-(W/2), -(H/2), -0.06>, < (W/2), (H/2), 0.06> } box { <-(W/2)+0.08, -(H/2)+0.08, -0.08>, <(W/2)-0.08, (H/2)-0.08, 0.08> } texture { M_Frame } } box { <-(W/2)+0.09, -(H/2)+0.09, -0.010>, < (W/2)-0.09, (H/2)-0.09, 0.000> texture { pigment { ArtPigment(ArtVariant, ArtVariant*0.37) } finish { diffuse 0.85 specular 0.18 roughness 0.06 } } } box { <-(W/2)+0.09, -(H/2)+0.09, 0.000>, < (W/2)-0.09, (H/2)-0.09, 0.012> texture { M_Glass } } translate Center } #end #declare Rows = 2; #declare Cols = 4; #declare FrameW = 2.4; #declare FrameH = 1.35; #declare GapX = 0.45; #declare GapY = 0.55; #declare StartX = -((Cols-1)*(FrameW+GapX))/2; #declare StartY = 3.55; #declare r = 0; #while (r < Rows) #declare c = 0; #while (c < Cols) #declare X = StartX + c*(FrameW+GapX); #declare Y = StartY - r*(FrameH+GapY); #declare V = 1 + r*Cols + c; MakeFrame(, FrameW, FrameH, V) #declare c = c + 1; #end #declare r = r + 1; #end union { box { <-1.25, 0.0, -0.6>, <1.25, 0.85, 0.6> texture { M_Pedestal } } box { <-1.10, 0.85, -0.45>, <1.10, 1.05, 0.45> texture { M_Pedestal } } union { torus { 0.62, 0.10 rotate <90,0,0> translate <0, 1.55, 0> texture { M_HeroMetal } } cylinder { <0, 1.05, 0>, <0, 1.88, 0>, 0.18 texture { M_HeroMetal } } sphere { <0, 2.05, 0>, 0.28 texture { M_Accent } } cylinder { <0, 1.88, 0>, <0, 2.05, 0>, 0.28 texture { M_Accent } } sphere { <0, 1.88, 0>, 0.28 texture { M_Accent } } cylinder { <0, 1.05, 0>, <0, 1.09, 0>, 0.52 texture { M_HeroMetal } } } translate <0,0,-1.35> } union { box { <-5.8, 0.0, -2.2>, <-3.6, 0.35, -1.1> texture { M_Pedestal } } box { < 3.6, 0.0, -2.2>, < 5.8, 0.35, -1.1> texture { M_Pedestal } } box { <-5.55, 0.35, -2.05>, <-3.85, 0.45, -1.25> texture { M_Frame } } box { < 3.85, 0.35, -2.05>, < 5.55, 0.45, -1.25> texture { M_Frame } } }