#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 8 } background { color rgb <0.70, 0.82, 0.95> } camera { location <12, 5.0, -17.5> look_at <0, 2.0, 0> angle 45 } light_source { <-10, 12, -12> color rgb <1.00, 0.98, 0.92> } light_source { < 8, 6, -8> color rgb <0.60, 0.70, 0.90>*0.6 } light_source { < 0, 4, -4.5> color rgb <1.00, 0.75, 0.45>*0.8 } // warm near facade // Ground (grass) plane { y, 0 texture { pigment { bozo color_map { [0.00 rgb <0.10, 0.30, 0.10>] [0.50 rgb <0.16, 0.40, 0.14>] [1.00 rgb <0.08, 0.25, 0.09>] } scale 0.8 } finish { diffuse 0.9 specular 0.05 roughness 0.08 } } } // A subtle sky haze/fog for atmosphere (kept light for speed) fog { distance 55 color rgb <0.80, 0.88, 0.98> fog_type 2 fog_offset 0.5 fog_alt 3.0 turbulence 0.6 } // Materials #declare Brick_Tex = texture { pigment { // Cheap "brick-ish" variation granite color_map { [0.00 rgb <0.45, 0.20, 0.14>] [0.40 rgb <0.55, 0.25, 0.18>] [0.75 rgb <0.38, 0.16, 0.12>] [1.00 rgb <0.62, 0.30, 0.22>] } scale 0.35 } normal { bumps 0.25 scale 0.08 } finish { diffuse 0.85 specular 0.12 roughness 0.06 } } #declare Mortar_Tex = texture { pigment { color rgb <0.70, 0.68, 0.63> } finish { diffuse 0.9 specular 0.05 roughness 0.10 } } #declare Wood_Tex = texture { pigment { wood color_map { [0.00 rgb <0.30, 0.18, 0.10>] [0.35 rgb <0.40, 0.24, 0.14>] [0.70 rgb <0.26, 0.16, 0.10>] [1.00 rgb <0.48, 0.28, 0.16>] } turbulence 0.2 scale <0.25, 0.25, 2.0> rotate <0, 90, 0> } finish { diffuse 0.85 specular 0.15 roughness 0.05 } } #declare Glass_Glow = texture { pigment { color rgb <1.0, 0.75, 0.45> filter 0.2 transmit 0.1 } finish { diffuse 0.2 ambient 0.0 specular 0.6 roughness 0.01 reflection 0.05 } } // Building dimensions #declare B_W = 7.5; // width (x) #declare B_H = 4.2; // height (y) #declare B_D = 5.0; // depth (z) #declare WallT = 0.25; // Main building block #declare Building = union { // Outer shell box { <-B_W/2, 0, -B_D/2>, texture { Brick_Tex } } // Simple roof slab (slightly darker) box { <-B_W/2-0.05, B_H, -B_D/2-0.05>, texture { pigment { color rgb <0.30, 0.30, 0.33> } finish { diffuse 0.8 specular 0.15 roughness 0.07 } } } // Trim base box { <-B_W/2-0.05, 0, -B_D/2-0.05>, texture { pigment { color rgb <0.22, 0.22, 0.23> } finish { diffuse 0.85 specular 0.12 roughness 0.07 } } } } // Door + windows positions on front face (front is z = -B_D/2) #declare FrontZ = -B_D/2; #declare DoorW = 2.0; #declare DoorH = 2.6; #declare DoorY0 = 0.05; #declare WinW = 1.4; #declare WinH = 1.2; #declare WinY0 = 1.55; #declare WinX1 = -2.35; #declare WinX2 = 2.35; // Facade details: inset panels (simulate openings) + frames #declare Facade_Details = union { // Door recess panel box { <-DoorW/2-0.18, DoorY0-0.12, FrontZ-0.01>, < DoorW/2+0.18, DoorY0+DoorH+0.18, FrontZ+0.07> texture { Mortar_Tex } } // Door frame (thin border) difference { box { <-DoorW/2-0.22, DoorY0-0.10, FrontZ-0.005>, } box { <-DoorW/2-0.12, DoorY0-0.02, FrontZ-0.02>, } texture { pigment { color rgb <0.18, 0.18, 0.19> } finish { diffuse 0.85 specular 0.12 roughness 0.06 } } } // Windows recess panels #macro WinRecess(XC) box { , texture { Mortar_Tex } } difference { //box { , } box { , } texture { pigment { color rgb <0.20, 0.20, 0.21> } finish { diffuse 0.85 specular 0.12 roughness 0.06 } } } #end WinRecess(WinX1) WinRecess(WinX2) } // Door objects #declare Door = union { // Two door leaves box { <-DoorW/2, DoorY0, FrontZ+0.10>, < 0.00, DoorY0+DoorH, FrontZ+0.22> texture { Wood_Tex } } box { < 0.00, DoorY0, FrontZ+0.10>, < DoorW/2, DoorY0+DoorH, FrontZ+0.22> texture { Wood_Tex } } // Vertical seam strip box { <-0.03, DoorY0, FrontZ+0.22>, < 0.03, DoorY0+DoorH, FrontZ+0.235> texture { pigment { color rgb <0.10, 0.08, 0.06> } finish { diffuse 0.9 specular 0.1 roughness 0.08 } } } // Handles cylinder { <-0.40, DoorY0+1.35, FrontZ+0.24>, <-0.40, DoorY0+1.35, FrontZ+0.30>, 0.04 texture { pigment { color rgb <0.75, 0.62, 0.35> } finish { diffuse 0.4 specular 0.8 roughness 0.02 } } } cylinder { < 0.40, DoorY0+1.35, FrontZ+0.24>, < 0.40, DoorY0+1.35, FrontZ+0.30>, 0.04 texture { pigment { color rgb <0.75, 0.62, 0.35> } finish { diffuse 0.4 specular 0.8 roughness 0.02 } } } } // Window panes + glow (plus a small warm light near each window) #declare WindowSet = union { #macro OneWindow(XC) // Glass pane box { , texture { Glass_Glow } } // Simple muntins box { , texture { pigment { color rgb <0.12, 0.12, 0.13> } finish { diffuse 0.85 specular 0.15 roughness 0.06 } } } box { , texture { pigment { color rgb <0.12, 0.12, 0.13> } finish { diffuse 0.85 specular 0.15 roughness 0.06 } } } // Warm "interior" light just inside light_source { color rgb <1.0, 0.70, 0.40>*0.7 fade_distance 2.5 fade_power 2 } #end OneWindow(WinX1) OneWindow(WinX2) } // Assemble scene object { Building } object { Facade_Details } object { Door } object { WindowSet } // A small path / worn patch in front of door box { <-1.4, 0.001, FrontZ-1.8>, <1.4, 0.002, FrontZ-0.35> texture { pigment { bozo color_map { [0.00 rgb <0.22, 0.20, 0.16>] [0.60 rgb <0.30, 0.28, 0.22>] [1.00 rgb <0.18, 0.16, 0.13>] } scale 0.4 } finish { diffuse 0.9 specular 0.05 roughness 0.09 } } }