#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 6 } background { color rgb <0.96, 0.97, 0.99> } camera { location <0, 4.2, -26.2> look_at <0, 1.6, 0> angle 38 } light_source { <-8, 10, -10> color rgb <1.0, 0.98, 0.95>*1.2 area_light <3,0,0>, <0,0,3>, 5, 5 adaptive 1 jitter } light_source { < 8, 6, -6> color rgb <0.85, 0.9, 1.0>*0.6 } light_source { < 0, 6, 6> color rgb <1,1,1>*0.35 } #declare WallPigment = pigment { color rgb <0.92, 0.93, 0.95> }; #declare WallFinish = finish { diffuse 0.85 specular 0.08 roughness 0.06 }; #declare FramePigment = pigment { color rgb <0.08, 0.09, 0.11> }; #declare FrameFinish = finish { diffuse 0.25 specular 0.65 roughness 0.02 reflection 0.08 }; #declare MatteWhite = texture { pigment { color rgb <0.94,0.94,0.95> } finish { diffuse 0.9 specular 0.05 roughness 0.08 } }; #declare FloorTex = texture { pigment { color rgb <0.84, 0.85, 0.87> } finish { diffuse 0.85 specular 0.12 roughness 0.05 reflection 0.06 } }; #declare MetalTex = texture { pigment { color rgb <0.72,0.74,0.78> } finish { diffuse 0.15 specular 0.9 roughness 0.02 reflection 0.18 metallic } }; #declare AccentGlass = texture { pigment { color rgbt <0.55,0.75,0.95,0.72> } finish { specular 0.9 roughness 0.01 reflection 0.08 } }; #macro Frac(X) ((X) - floor(X)) #end plane { y, 0 texture { FloorTex } } box { <-8, 0, -0.35>, <8, 5, -0.15> texture { WallPigment finish { WallFinish } } } box { <-8, 5, -6>, <8, 5.25, 3> texture { MatteWhite } } box { <-8, -0.1, -6>, <8, 0, 3> texture { MatteWhite } } box { <-8, 0, 3>, <8, 5, 3.1> texture { MatteWhite } } #macro GalleryFrame(CenterX, CenterY, CenterZ, W, H, SeedVal) #local FrameD = 0.06; #local Border = 0.10; #local ImgD = 0.01; union { box { <-(W/2), -(H/2), 0>, <(W/2), (H/2), FrameD> texture { FramePigment finish { FrameFinish } } } #local s1 = Frac(SeedVal*0.13); #local s2 = Frac(SeedVal*0.27); #local s3 = Frac(SeedVal*0.41); #local s4 = Frac(SeedVal*0.19); #local s5 = Frac(SeedVal*0.33); #local s6 = Frac(SeedVal*0.51); #local s7 = Frac(SeedVal*0.07); #local s8 = Frac(SeedVal*0.11); #local s9 = Frac(SeedVal*0.17); box { <-(W/2)+Border, -(H/2)+Border, FrameD-0.001>, < (W/2)-Border, (H/2)-Border, FrameD+ImgD> texture { pigment { gradient x color_map { [0.00 color rgb <0.20+0.60*s1, 0.18+0.55*s2, 0.22+0.55*s3>] [0.45 color rgb <0.85-0.60*s4, 0.78-0.55*s5, 0.90-0.55*s6>] [1.00 color rgb <0.15+0.70*s7, 0.25+0.55*s8, 0.40+0.50*s9>] } scale translate } finish { diffuse 0.8 specular 0.25 roughness 0.03 } } } translate } #end #declare WallZ = -0.15; #declare ZPush = -0.02; #declare Cols = 4; #declare Rows = 2; #declare FrameW = 2.2; #declare FrameH = 1.35; #declare GapX = 0.35; #declare GapY = 0.40; #declare StartX = -((Cols-1)*(FrameW+GapX))/2; #declare StartY = 3.6; #declare r = 0; #while (r < Rows) #declare c = 0; #while (c < Cols) #declare cx = StartX + c*(FrameW+GapX); #declare cy = StartY - r*(FrameH+GapY); GalleryFrame(cx, cy, WallZ+ZPush, FrameW, FrameH, (r*Cols+c+1)*17.3) #declare c = c + 1; #end #declare r = r + 1; #end box { <-1.25, 0, 1.05>, <1.25, 0.18, 2.55> texture { MatteWhite } } box { <-0.95, 0.18, 1.25>, <0.95, 1.10, 2.35> texture { pigment { color rgb <0.95,0.95,0.96> } finish { diffuse 0.85 specular 0.12 roughness 0.05 } } } union { torus { 0.55, 0.12 rotate <90,0,0> texture { MetalTex } } sphere { <0.0, 0.55, 0.0>, 0.42 texture { AccentGlass } } cylinder { <0, -0.15, 0>, <0, 0.85, 0>, 0.08 texture { MetalTex } } box { <-0.18, 0.15, -0.18>, <0.18, 0.23, 0.18> texture { MetalTex } } translate <0, 1.28, 1.8> } sphere { <0, 1.28, 1.8>, 0.9 texture { pigment { color rgbt <1,1,1,1> } finish { diffuse 0 specular 0 } } interior { ior 1.0 } hollow on }