#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 10 } background { color rgb <0.54, 0.70, 0.93> } #default { finish { diffuse 0.9 } } // ------------------------------------------------------------ // Camera (window-focused 3/4 close-up) // ------------------------------------------------------------ camera { location <-7.6, 2.9, -7.2> look_at < 0.2, 2.25, -2.9> angle 36 } // ------------------------------------------------------------ // Lights (dusk + warm interior glow support) // ------------------------------------------------------------ light_source { <80, 90, -70> color rgb <1.00, 0.97, 0.90>*1.05 } light_source { <-25, 20, -20> color rgb <0.45, 0.55, 0.75>*0.55 } light_source { <0, 30, 10> color rgb <0.60, 0.72, 0.95>*0.20 } // ------------------------------------------------------------ // Textures // ------------------------------------------------------------ #declare T_Grass = texture{ pigment{ bozo color_map{ [0.00 color rgb <0.09,0.22,0.09>] [0.45 color rgb <0.16,0.38,0.15>] [1.00 color rgb <0.07,0.16,0.07>] } scale 0.70 } normal { bumps 0.70 scale 0.14 } finish { diffuse 0.95 specular 0.04 roughness 0.13 } } #declare T_Brick = texture{ pigment{ brick color rgb <0.52, 0.20, 0.15>, color rgb <0.74, 0.28, 0.20> brick_size <0.34, 0.10, 0.18> mortar 0.16 rotate <0,90,0> scale 1 } normal { bumps 0.70 scale 0.022 } finish { diffuse 0.92 specular 0.10 roughness 0.055 } } #declare T_Stone = texture{ pigment{ granite color_map{ [0.00 color rgb <0.46,0.46,0.48>] [0.55 color rgb <0.70,0.70,0.72>] [1.00 color rgb <0.40,0.40,0.42>] } scale 0.70 } normal { bumps 0.55 scale 0.07 } finish { diffuse 0.90 specular 0.12 roughness 0.09 } } #declare T_DarkMetal = texture{ pigment{ color rgb <0.10,0.10,0.11> } finish { diffuse 0.35 specular 0.60 roughness 0.03 reflection 0.08 } } #declare T_Wood = texture{ pigment{ wood color_map{ [0.00 color rgb <0.16,0.09,0.06>] [0.35 color rgb <0.44,0.25,0.14>] [1.00 color rgb <0.12,0.07,0.05>] } turbulence 0.18 scale <0.20, 1, 0.20> rotate <0,90,0> } normal { bumps 0.45 scale 0.03 } finish { diffuse 0.88 specular 0.22 roughness 0.05 } } #declare T_InteriorWall = texture{ pigment{ color rgb <0.80,0.76,0.68> } finish { diffuse 0.85 } } #declare T_InteriorFloor = texture{ pigment{ wood color_map{ [0.00 color rgb <0.20,0.11,0.07>] [0.32 color rgb <0.46,0.26,0.14>] [1.00 color rgb <0.15,0.09,0.05>] } scale <0.18,1,0.18> rotate <0,90,0> turbulence 0.12 } finish { diffuse 0.85 specular 0.16 roughness 0.07 } } // Clear, see-through glass (low reflection, high transparency) #declare T_GlassClear = texture{ pigment{ color rgbf <0.98, 0.99, 1.00, 0.06> } normal { bumps 0.08 scale 0.012 } finish { diffuse 0.01 specular 0.85 roughness 0.012 reflection 0.06 } } // ------------------------------------------------------------ // Ground + atmosphere // ------------------------------------------------------------ plane { y, 0 texture { T_Grass } } fog { distance 85 color rgb <0.54, 0.70, 0.93> fog_type 2 fog_offset 0.20 fog_alt 2.6 turbulence 0.22 } // ------------------------------------------------------------ // Building (kept, but composition focuses on windows) // ------------------------------------------------------------ #declare B_W = 10.0; #declare B_D = 6.2; #declare B_H = 4.6; #declare WallThick = 0.30; #declare Wall_Min = <-B_W/2, 0, -B_D/2>; #declare Wall_Max = < B_W/2, B_H, B_D/2>; #declare FrontZ = -B_D/2; // Window params #declare WinW = 1.55; #declare WinH = 1.40; #declare WinY = 2.05; #declare WinFrameDepth = 0.20; #declare RecessDepth = 0.30; #macro FrontWindowCut(XPos) box { , } #end // Small upper window (kept subtle; still see-through) #declare Win2W = 1.05; #declare Win2H = 0.85; #declare Win2Y = 3.52; #macro UpperWindowCut() box { <-Win2W/2, Win2Y-Win2H/2, FrontZ-0.55>, < Win2W/2, Win2Y+Win2H/2, FrontZ+0.36> } #end // Shell with openings difference{ union{ box { Wall_Min, Wall_Max texture{T_Brick} } // Base plinth box { <-B_W/2-0.08, 0, -B_D/2-0.08>, texture{T_Stone} } // Roof slab (simple) box { <-B_W/2-0.32, B_H, -B_D/2-0.32>, texture{T_Stone} } // Lintel band box { <-B_W/2, 3.48, FrontZ-0.01>, texture{T_Stone} } } // Cut windows FrontWindowCut(-3.2) FrontWindowCut( 3.2) UpperWindowCut() // Cut door (kept but not emphasized) box { <-1.1, 0.42, FrontZ-0.55>, <1.1, 3.50, FrontZ+0.36> } } // ------------------------------------------------------------ // Interior room (visible through windows) // ------------------------------------------------------------ #declare Inner_W = B_W - 2*WallThick; #declare Inner_D = B_D - 2*WallThick; #declare Inner_H = B_H - 0.40; #declare Inner_Min = <-Inner_W/2, 0.42, -Inner_D/2>; #declare Inner_Max = < Inner_W/2, Inner_H, Inner_D/2>; union{ // Back wall box { , texture{T_InteriorWall} } // Left wall box { , texture{T_InteriorWall} } // Right wall box { , texture{T_InteriorWall} } // Floor box { , texture{T_InteriorFloor} } } // Simple interior silhouettes to read depth #declare T_Sil = texture{ pigment{ color rgb <0.10,0.10,0.11> } finish{ diffuse 0.22 specular 0.06 roughness 0.08 } } union{ // Table centered box { <-1.25, 1.05, -0.4>, <1.25, 1.15, 0.8> texture{T_Sil} } cylinder { <-1.05, 0.42, -0.2>, <-1.05, 1.05, -0.2>, 0.06 texture{T_Sil} } cylinder { < 1.05, 0.42, -0.2>, < 1.05, 1.05, -0.2>, 0.06 texture{T_Sil} } cylinder { <-1.05, 0.42, 0.6>, <-1.05, 1.05, 0.6>, 0.06 texture{T_Sil} } cylinder { < 1.05, 0.42, 0.6>, < 1.05, 1.05, 0.6>, 0.06 texture{T_Sil} } // Cabinet back left box { <-3.6, 0.42, 2.0>, <-2.0, 2.05, 2.58> texture{T_Sil} } // Upper silhouette aligned to upper window box { <-0.55, 2.75, 1.55>, <0.55, 3.60, 2.02> texture{T_Sil} } } // Warm interior lighting (makes windows feel "alive") #declare WarmCol = color rgb <1.00, 0.72, 0.40>; light_source { <-3.3, 2.15, -1.3> WarmCol*1.35 fade_distance 7 fade_power 2 } light_source { < 3.3, 2.15, -1.3> WarmCol*1.35 fade_distance 7 fade_power 2 } light_source { < 0.0, 3.30, -1.0> WarmCol*0.85 fade_distance 7 fade_power 2 } // ------------------------------------------------------------ // Window assemblies (see-through, deeper + nicer framing) // ------------------------------------------------------------ #macro MakeFrontWindow(XPos) union{ // Outer stone surround (slightly proud) box { , texture{T_Stone} } // Inner dark recess box { , texture{T_DarkMetal} } // Wooden inner frame (gives warmth around glass) box { , texture{T_Wood} } // Carve out the wooden frame center so it's a border difference{ box { , } box { , } texture{T_Wood} } // Clear glass placed slightly behind the frame front box { , texture{T_GlassClear} interior { ior 1.50 } } // Thin muntins (kept minimal so you can see in) box { , texture{T_Stone} } box { , texture{T_Stone} } } #end MakeFrontWindow(-3.2) MakeFrontWindow( 3.2) // Upper window (also see-through) union{ box { <-Win2W/2-0.14, Win2Y-Win2H/2-0.14, FrontZ-0.001>, texture{T_Stone} } box { <-Win2W/2+0.01, Win2Y-Win2H/2+0.01, FrontZ+0.03>, texture{T_DarkMetal} } difference{ box { <-Win2W/2+0.06, Win2Y-Win2H/2+0.06, FrontZ+0.05>, texture{T_Wood} } box { <-Win2W/2+0.13, Win2Y-Win2H/2+0.13, FrontZ-0.2>, } } box { <-Win2W/2+0.14, Win2Y-Win2H/2+0.14, FrontZ+0.115>, < Win2W/2-0.14, Win2Y+Win2H/2-0.14, FrontZ+0.132> texture{T_GlassClear} interior { ior 1.50 } } box { <-0.016, Win2Y-Win2H/2+0.14, FrontZ+0.133>, <0.016, Win2Y+Win2H/2-0.14, FrontZ+0.155> texture{T_Stone} } } // ------------------------------------------------------------ // Minimal door mass (not focus; kept subtle) // ------------------------------------------------------------ #declare DoorW = 2.2; #declare DoorH = 3.05; union{ // Simple step hint box { <-1.75, 0.00, FrontZ-1.10>, <1.75, 0.20, FrontZ+0.02> texture{T_Stone} } // Door surround box { <-DoorW/2-0.16, 0.40, FrontZ-0.001>, texture{T_Stone} } // Door leaf box { <-DoorW/2+0.06, 0.44, FrontZ+0.06>, texture{T_Wood} } }