#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 8 } background { color rgb <0.03, 0.04, 0.06> } #declare BuildingW = 14; #declare BuildingD = 9; #declare BuildingH = 6; #declare RoofH = 2.1; // -------------------- Textures -------------------- #declare BrickTex = texture{ pigment{ granite color_map{ [0.00 color rgb <0.38,0.18,0.14>] [0.35 color rgb <0.56,0.26,0.20>] [0.65 color rgb <0.45,0.21,0.17>] [1.00 color rgb <0.62,0.30,0.23>] } scale 0.35 } normal{ bumps 0.35 scale 0.12 } finish{ diffuse 0.85 specular 0.10 roughness 0.07 } } #declare MortarTex = texture{ pigment{ color rgb <0.78,0.75,0.70> } finish{ diffuse 0.9 specular 0.05 roughness 0.12 } } #declare WoodTex = texture{ pigment{ wood color_map{ [0.00 color rgb <0.28,0.16,0.09>] [0.35 color rgb <0.40,0.23,0.12>] [0.70 color rgb <0.32,0.18,0.10>] [1.00 color rgb <0.46,0.28,0.15>] } scale 0.45 turbulence 0.2 } normal{ bumps 0.35 scale 0.03 } finish{ diffuse 0.8 specular 0.25 roughness 0.05 } } #declare RoofTex = texture{ pigment{ color rgb <0.16,0.16,0.18> } normal{ bumps 0.25 scale 0.20 } finish{ diffuse 0.8 specular 0.15 roughness 0.08 } } #declare TrimTex = texture{ pigment{ color rgb <0.82,0.80,0.74> } finish{ diffuse 0.9 specular 0.10 roughness 0.08 } } #declare GlassTex = texture{ pigment{ color rgbt <0.85,0.95,1.00,0.85> } finish{ specular 0.6 roughness 0.02 reflection 0.10 } } #declare GlowTex = texture{ pigment{ color rgb <1.0,0.72,0.35> } finish{ emission 1.25 diffuse 0 } } // -------------------- Camera -------------------- camera { location <0, 7.0, -18> look_at <0, 3.0, 0> angle 40 } // -------------------- Lights -------------------- light_source { <-18, 18, -20> color rgb <1.00,0.92,0.80>*1.2 area_light <4,0,0>, <0,0,4>, 5, 5 adaptive 1 jitter } light_source { <14, 10, -8> color rgb <0.55,0.65,0.90>*0.35 } light_source { <0, 9, 10> color rgb <0.85,0.75,0.65>*0.25 } // -------------------- Ground: grass -------------------- plane { y, 0 texture{ pigment{ bozo color_map{ [0.0 color rgb <0.10,0.22,0.10>] [0.5 color rgb <0.12,0.28,0.12>] [1.0 color rgb <0.07,0.18,0.07>] } scale 0.9 } normal{ bumps 0.55 scale 0.25 } finish{ diffuse 0.95 specular 0.04 roughness 0.15 } } } // -------------------- Atmosphere -------------------- fog { distance 55 color rgb <0.06,0.07,0.08> fog_type 2 fog_offset 0.2 fog_alt 2.8 turbulence 0.8 } // -------------------- Window Macro -------------------- #macro MakeWindow(X0,Y0,Z0, X1,Y1,Z1) union{ // Frame box { , texture{ TrimTex } } // Glass box { , texture{ GlassTex } } // Mullions (simple cross) box { <(X0+X1)/2-0.05, Y0, Z0+0.03>, <(X0+X1)/2+0.05, Y1, Z1-0.03> texture{ TrimTex } } box { , texture{ TrimTex } } // Warm interior glow pane slightly behind glass box { , texture{ GlowTex } } } #end // -------------------- Building group -------------------- union{ // Main brick shell (hollow) with openings difference{ box { <-BuildingW/2, 0, -BuildingD/2>, } box { <-BuildingW/2+0.35, 0.25, -BuildingD/2+0.35>, } // Door opening (front face, z = -D/2) box { <-1.35, 0.0, -BuildingD/2-0.01>, < 1.35, 3.05, -BuildingD/2+0.60> } // Window openings (front) box { <-5.7, 1.6, -BuildingD/2-0.01>, <-3.3, 3.5, -BuildingD/2+0.60> } box { < 3.3, 1.6, -BuildingD/2-0.01>, < 5.7, 3.5, -BuildingD/2+0.60> } // Window openings (left side x = -W/2) box { <-BuildingW/2-0.01, 1.6, -2.2>, <-BuildingW/2+0.60, 3.5, 0.2> } box { <-BuildingW/2-0.01, 1.6, 1.2>, <-BuildingW/2+0.60, 3.5, 3.6> } texture{ BrickTex } } // Mortar-like base trim band box { <-BuildingW/2-0.02, 0.00, -BuildingD/2-0.02>, texture{ MortarTex } } // Gable-ish roof via intersection (box clipped by two planes) union{ intersection{ box { <-BuildingW/2-0.30, BuildingH, -BuildingD/2-0.30>, } // Two sloped planes to form the roof ridge plane { < 1, 1, 0>, 0 rotate <0,0, 24> translate <0, BuildingH+RoofH, 0> } plane { <-1, 1, 0>, 0 rotate <0,0,-24> translate <0, BuildingH+RoofH, 0> } texture{ RoofTex } } } // Front door frame trim box { <-1.55, 0.0, -BuildingD/2-0.04>, <1.55, 3.25, -BuildingD/2+0.15> texture{ TrimTex } } // Step box { <-2.2, 0.0, -BuildingD/2-1.2>, <2.2, 0.25, -BuildingD/2-0.10> texture{ MortarTex } } // Wooden double doors union{ // Left door slab box { <-1.30, 0.05, -BuildingD/2-0.02>, <-0.02, 3.00, -BuildingD/2+0.10> texture{ WoodTex } } // Right door slab box { < 0.02, 0.05, -BuildingD/2-0.02>, < 1.30, 3.00, -BuildingD/2+0.10> texture{ WoodTex } } // Panels (simple raised boxes) #declare pz0 = -BuildingD/2-0.01; #declare pz1 = -BuildingD/2+0.13; // Left door panels (FIXED: two proper vectors per box) box { <-1.18, 0.35, pz0>, <-0.14, 1.35, pz1> texture{ WoodTex } } box { <-1.18, 1.55, pz0>, <-0.14, 2.70, pz1> texture{ WoodTex } } // Right door panels box { < 0.14, 0.35, pz0>, < 1.18, 1.35, pz1> texture{ WoodTex } } box { < 0.14, 1.55, pz0>, < 1.18, 2.70, pz1> texture{ WoodTex } } // Simple handles cylinder { <-0.10, 1.55, -BuildingD/2+0.11>, <-0.10, 1.55, -BuildingD/2+0.18>, 0.05 texture{ pigment{ color rgb <0.75,0.68,0.40> } finish{ specular 0.5 roughness 0.03 } } } cylinder { < 0.10, 1.55, -BuildingD/2+0.11>, < 0.10, 1.55, -BuildingD/2+0.18>, 0.05 texture{ pigment{ color rgb <0.75,0.68,0.40> } finish{ specular 0.5 roughness 0.03 } } } } // Windows: frames, glass, and warm glow behind // Front windows (z near -D/2) object { MakeWindow(-5.7, 1.6, -BuildingD/2+0.02, -3.3, 3.5, -BuildingD/2+0.50) } object { MakeWindow( 3.3, 1.6, -BuildingD/2+0.02, 5.7, 3.5, -BuildingD/2+0.50) } // Left side windows (x near -W/2) object { MakeWindow(-BuildingW/2+0.02, 1.6, -2.2, -BuildingW/2+0.50, 3.5, 0.2) } object { MakeWindow(-BuildingW/2+0.02, 1.6, 1.2, -BuildingW/2+0.50, 3.5, 3.6) } // Subtle chimney box { , texture{ BrickTex } } box { , texture{ pigment{ color rgb <0.12,0.12,0.13> } finish{ diffuse 0.7 specular 0.1 roughness 0.1 } } } translate <0,0,0> } // -------------------- Bushes -------------------- union{ sphere{ <-7.5, 0.6, -4.0>, 0.9 } sphere{ <-6.7, 0.5, -3.3>, 0.8 } sphere{ <-7.0, 0.4, -4.8>, 0.75 } texture{ pigment{ color rgb <0.08,0.20,0.10> } normal{ bumps 0.8 scale 0.12 } finish{ diffuse 0.9 specular 0.08 roughness 0.15 } } } union{ sphere{ <7.3, 0.6, -3.8>, 0.9 } sphere{ <6.5, 0.5, -3.0>, 0.75 } sphere{ <7.0, 0.4, -4.6>, 0.8 } texture{ pigment{ color rgb <0.08,0.20,0.10> } normal{ bumps 0.8 scale 0.12 } finish{ diffuse 0.9 specular 0.08 roughness 0.15 } } }