#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 8 } background { color rgb <0.70, 0.83, 0.98> } #declare SunDir = vnormalize(<-0.7, 0.7, -0.3>); camera { location <12, 7.1, -16.5> look_at <0, 2.0, 0> angle 45 } light_source { <80, 80, -120> color rgb <1.0, 0.98, 0.92> } light_source { <0, 12, -10> color rgb <0.35, 0.42, 0.55> area_light <3,0,0>, <0,0,3>, 6, 6 adaptive 1 jitter } sky_sphere { pigment { gradient y color_map { [0.0 color rgb <0.55, 0.75, 0.98>] [0.6 color rgb <0.70, 0.83, 0.98>] [1.0 color rgb <0.98, 0.90, 0.75>] } } } fog { distance 55 color rgb <0.78, 0.86, 0.96> fog_type 2 fog_alt 1.2 turbulence 0.2 } #declare GrassTex = texture { pigment { bozo color_map { [0.00 color rgb <0.14, 0.30, 0.12>] [0.55 color rgb <0.18, 0.38, 0.16>] [1.00 color rgb <0.22, 0.46, 0.19>] } scale 0.9 } normal { bumps 0.55 scale 0.15 } finish { diffuse 0.85 specular 0.05 roughness 0.08 } } plane { y, 0 texture { GrassTex } } #declare BrickTex = texture { pigment { brick color rgb <0.62, 0.23, 0.17>, color rgb <0.73, 0.30, 0.20> brick_size <0.40, 0.18, 0.20> mortar 0.12 scale <1.0, 1.0, 1.0> } normal { bumps 0.30 scale 0.10 } finish { diffuse 0.90 specular 0.12 roughness 0.06 } } #declare WoodTex = texture { pigment { wood color_map { [0.00 color rgb <0.34, 0.20, 0.10>] [0.55 color rgb <0.46, 0.27, 0.14>] [1.00 color rgb <0.26, 0.15, 0.08>] } turbulence 0.25 scale 0.6 } normal { bumps 0.4 scale 0.06 } finish { diffuse 0.85 specular 0.18 roughness 0.06 } } #declare GlassGlowTex = texture { pigment { color rgb <1.00, 0.75, 0.45> filter 0.2 transmit 0.5 } finish { emission 0.65 diffuse 0.1 specular 0.0 } } #declare DarkGlassTex = texture { pigment { color rgb <0.12, 0.16, 0.20> filter 0.65 transmit 0.25 } finish { diffuse 0.12 specular 0.35 roughness 0.03 } } #declare RoofTex = texture { pigment { color rgb <0.18, 0.18, 0.20> } normal { bumps 0.35 scale 0.15 } finish { diffuse 0.75 specular 0.12 roughness 0.08 } } #declare StoneStepTex = texture { pigment { color rgb <0.55, 0.55, 0.56> } normal { bumps 0.35 scale 0.12 } finish { diffuse 0.85 specular 0.06 roughness 0.12 } } #declare FrameTex = texture { pigment { color rgb <0.86, 0.84, 0.80> } finish { diffuse 0.85 specular 0.15 roughness 0.08 } } #declare BuildingW = 6.6; #declare BuildingD = 4.4; #declare BuildingH = 3.4; #declare WallT = 0.25; #macro WindowCut(Ww, Wh, Xc, Yc, Zface) box { , } #end #macro DoorCut(Dw, Dh) box { <-Dw/2, 0, -BuildingD/2 - 0.35>, < Dw/2, Dh, -BuildingD/2 + 0.35> } #end #macro MakeWindowPane(Ww, Wh, Xc, Yc, Zface, Facing) union { // outer frame //box { // , // // texture { FrameTex } //} // mullions box { , texture { FrameTex } } box { , texture { FrameTex } } // glass (slightly inset) box { , texture { GlassGlowTex } } } #end // Building shell with cutouts difference { box { <-BuildingW/2, 0, -BuildingD/2>, } // Hollow interior box { <-BuildingW/2+WallT, 0.02, -BuildingD/2+WallT>, < BuildingW/2-WallT, BuildingH-0.02, BuildingD/2-WallT> } // Front door opening DoorCut(2.2, 2.6) // Front windows WindowCut(1.25, 1.10, -2.2, 2.0, -BuildingD/2) WindowCut(1.25, 1.10, 2.2, 2.0, -BuildingD/2) // Side windows (right) WindowCut(1.15, 1.00, BuildingW/2, 1.9, -1.3) WindowCut(1.15, 1.00, BuildingW/2, 1.9, 1.3) texture { BrickTex } } // Roof + trim union { // Simple gable roof: wedge-like prism via intersection intersection { box { <-BuildingW/2-0.20, BuildingH, -BuildingD/2-0.25>, } plane { < 1, 1.1, 0>, (BuildingW/2) + (BuildingH*1.1) + 0.25 } //plane { <-1.5, 1.1, 0>, (BuildingW/2) + (BuildingH*1.1) + 0.25 } texture { RoofTex } } // Eaves trim box { <-BuildingW/2-0.25, BuildingH-0.05, -BuildingD/2-0.30>, < BuildingW/2+0.25, BuildingH+0.10, BuildingD/2+0.30> texture { pigment { color rgb <0.20,0.20,0.20> } finish { diffuse 0.7 specular 0.2 roughness 0.07 } } } } // Window panes (front) object { MakeWindowPane(1.25, 1.10, -2.2, 2.0, -BuildingD/2, -1) } object { MakeWindowPane(1.25, 1.10, 2.2, 2.0, -BuildingD/2, -1) } // Window panes (right side): build on a local "front-plane" then rotate/translate to right wall object { MakeWindowPane(1.15, 1.00, 0, 1.9, -BuildingD/2, -1) rotate <0,90,0> translate } object { MakeWindowPane(1.15, 1.00, 0, 1.9, -BuildingD/2, -1) rotate <0,90,0> translate } // Door union { // door frame //box { // <-1.20, 0.0, -BuildingD/2 - 0.02>, // < 1.20, 2.70, -BuildingD/2 + 0.12> // texture { FrameTex } //} // double doors //box { // <-1.08, 0.02, -BuildingD/2 + 0.02>, // <-0.02, 2.58, -BuildingD/2 + 0.10> // texture { WoodTex } //} //box { // < 0.02, 0.02, -BuildingD/2 + 0.02>, // < 1.08, 2.58, -BuildingD/2 + 0.10> // texture { WoodTex } //} // small top transom glass box { <-1.06, 2.62, -BuildingD/2 + 0.02>, < 1.06, 2.92, -BuildingD/2 + 0.07> texture { DarkGlassTex } } // handles cylinder { <-0.18, 1.25, -BuildingD/2 + 0.105>, <-0.18, 1.25, -BuildingD/2 + 0.135>, 0.04 texture { pigment { color rgb <0.85,0.72,0.35> } finish { specular 0.6 roughness 0.03 } } } cylinder { < 0.18, 1.25, -BuildingD/2 + 0.105>, < 0.18, 1.25, -BuildingD/2 + 0.135>, 0.04 texture { pigment { color rgb <0.85,0.72,0.35> } finish { specular 0.6 roughness 0.03 } } } } // Steps + walkway union { box { <-1.60, 0.00, -BuildingD/2-1.10>, < 1.60, 0.18, -BuildingD/2-0.40> texture { StoneStepTex } } box { <-1.35, 0.18, -BuildingD/2-0.95>, < 1.35, 0.32, -BuildingD/2-0.45> texture { StoneStepTex } } // small walkway patch box { <-2.8, 0.001, -BuildingD/2-3.8>, <2.8, 0.01, -BuildingD/2-1.10> texture { pigment { color rgb <0.40,0.36,0.33> } normal { bumps 0.25 scale 0.18 } finish { diffuse 0.85 specular 0.05 roughness 0.12 } } } } // Warm porch light light_source { <0, 2.2, -BuildingD/2 + 0.25> color rgb <1.0, 0.72, 0.45>*0.8 fade_distance 5 fade_power 2 } // Bushes #declare BushTex = texture { pigment { bozo color_map { [0 color rgb <0.10,0.25,0.10>] [1 color rgb <0.18,0.45,0.18>] } scale 0.4 } normal { bumps 0.7 scale 0.15 } finish { diffuse 0.9 specular 0.05 roughness 0.1 } } union { sphere { <-4.7, 0.55, -0.4>, 0.65 texture { BushTex } } sphere { <-4.1, 0.45, -0.9>, 0.55 texture { BushTex } } sphere { <-4.4, 0.40, 0.2>, 0.50 texture { BushTex } } sphere { < 4.7, 0.55, 0.2>, 0.65 texture { BushTex } } sphere { < 4.2, 0.45, 0.9>, 0.55 texture { BushTex } } sphere { < 4.4, 0.40,-0.4>, 0.50 texture { BushTex } } }