#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 8 } background { color rgb <0.72,0.78,0.85> } #default { finish { ambient 0 diffuse 1 } } #include "colors.inc" camera { location <0, 1.55, -5.8> look_at <0, 1.10, 0.0> angle 45 } light_source { <0, 2.85, -0.5> color rgb <1,1,1>*1.2 area_light <0.8,0,0>, <0,0,0.8>, 5, 5 adaptive 1 jitter } light_source { <-3.5, 2.0, -5.0> color rgb <1,1,1>*0.35 } #declare RoomHalfW = 3.2; #declare RoomHalfD = 3.6; #declare RoomH = 2.8; #declare TexWall = texture { pigment { color rgb <0.93,0.93,0.92> } finish { diffuse 0.85 specular 0.05 roughness 0.08 } }; #declare TexWallAccent = texture { pigment { color rgb <0.88,0.90,0.94> } finish { diffuse 0.85 specular 0.05 roughness 0.08 } }; #declare TexFloor = texture { pigment { checker color rgb <0.58,0.44,0.30>, color rgb <0.54,0.40,0.27> scale 0.55 } finish { diffuse 0.9 specular 0.12 roughness 0.05 } }; #declare TexCeil = texture { pigment { color rgb <0.97,0.97,0.98> } finish { diffuse 0.9 specular 0.02 roughness 0.15 } }; #declare TexWood = texture { pigment { color rgb <0.55,0.38,0.23> } finish { diffuse 0.85 specular 0.10 roughness 0.06 } }; #declare TexDarkPlastic = texture { pigment { color rgb <0.11,0.12,0.13> } finish { diffuse 0.8 specular 0.25 roughness 0.04 } }; #declare TexLightPlastic = texture { pigment { color rgb <0.75,0.77,0.80> } finish { diffuse 0.85 specular 0.18 roughness 0.05 } }; #declare TexScreen = texture { pigment { color rgb <0.05,0.08,0.11> } finish { diffuse 0.2 specular 0.65 roughness 0.01 reflection 0.08 } }; #declare TexMetal = texture { pigment { color rgb <0.65,0.67,0.70> } finish { diffuse 0.6 specular 0.55 roughness 0.02 } }; // Room: floor, ceiling, back wall, left wall, right wall union { box { <-RoomHalfW, 0, -RoomHalfD>, < RoomHalfW, 0.02, RoomHalfD> texture {TexFloor} } // floor box { <-RoomHalfW, RoomH, -RoomHalfD>, < RoomHalfW, RoomH+0.02, RoomHalfD> texture {TexCeil} } // ceiling // back wall (at +Z) box { <-RoomHalfW, 0, RoomHalfD-0.02>, texture {TexWallAccent} } // left wall (at -X) box { <-RoomHalfW, 0, -RoomHalfD>, <-RoomHalfW+0.02, RoomH, RoomHalfD> texture {TexWall} } // right wall (at +X) box { , texture {TexWall} } } // Baseboard trim (simple) #declare TrimH = 0.10; #declare TrimT = 0.03; #declare TexTrim = texture { pigment { color rgb <0.96,0.96,0.97> } finish { diffuse 0.9 specular 0.10 roughness 0.06 } }; union { // back box { <-RoomHalfW, 0, RoomHalfD-TrimT>, texture {TexTrim} } // left box { <-RoomHalfW, 0, -RoomHalfD>, <-RoomHalfW+TrimT, TrimH, RoomHalfD> texture {TexTrim} } // right box { , texture {TexTrim} } } // Desk #declare DeskTopY = 0.75; #declare DeskW = 1.60; #declare DeskD = 0.75; #declare DeskT = 0.05; #declare DeskPos = <0.0, 0.0, 2.55>; union { // top box { <-DeskW/2, DeskTopY, -DeskD/2>, texture {TexWood} } // legs #declare LegW = 0.08; #declare LegH = DeskTopY; #declare OffX = DeskW/2 - 0.10; #declare OffZ = DeskD/2 - 0.10; box { <-OffX-LegW/2, 0, -OffZ-LegW/2>, <-OffX+LegW/2, LegH, -OffZ+LegW/2> texture {TexWood} } box { < OffX-LegW/2, 0, -OffZ-LegW/2>, < OffX+LegW/2, LegH, -OffZ+LegW/2> texture {TexWood} } box { <-OffX-LegW/2, 0, OffZ-LegW/2>, <-OffX+LegW/2, LegH, OffZ+LegW/2> texture {TexWood} } box { < OffX-LegW/2, 0, OffZ-LegW/2>, < OffX+LegW/2, LegH, OffZ+LegW/2> texture {TexWood} } translate DeskPos } // Computer: monitor + stand #declare MonitorPos = DeskPos + <0.00, DeskTopY+DeskT, 0.10>; union { // screen frame box { <-0.30, 0.12, -0.03>, <0.30, 0.48, 0.03> texture {TexDarkPlastic} } // screen surface slightly inset box { <-0.27, 0.15, -0.029>, <0.27, 0.45, -0.020> texture {TexScreen} } // stand neck box { <-0.04, 0.00, -0.02>, <0.04, 0.14, 0.02> texture {TexDarkPlastic} } // base box { <-0.18, -0.01, -0.10>, <0.18, 0.02, 0.10> texture {TexDarkPlastic} } translate MonitorPos } // Keyboard union { box { <-0.28, 0.00, -0.10>, <0.28, 0.03, 0.10> texture {TexDarkPlastic} } // key hint (fast: just a slight lighter inset) box { <-0.26, 0.031, -0.08>, <0.26, 0.033, 0.08> texture {TexLightPlastic} finish {diffuse 0.7 specular 0.10 roughness 0.08} } translate (DeskPos + <0.00, DeskTopY+DeskT, -0.18>) } // Mouse union { sphere { <0,0.03,0>, 0.05 texture {TexDarkPlastic} scale <1.2,0.8,1.6> } translate (DeskPos + <0.42, DeskTopY+DeskT, -0.18>) } // Small tower on desk right union { box { <-0.10, 0.00, -0.18>, <0.10, 0.42, 0.18> texture {TexDarkPlastic} } box { <-0.085, 0.06, -0.17>, <0.085, 0.38, -0.155> texture {TexMetal} finish {diffuse 0.4 specular 0.6 roughness 0.03} } translate (DeskPos + <0.62, DeskTopY+DeskT, 0.18>) } // Chair #declare ChairPos = <0.0, 0.0, 1.65>; union { // seat box { <-0.22, 0.45, -0.22>, <0.22, 0.52, 0.22> texture {TexDarkPlastic} } // back box { <-0.22, 0.52, 0.16>, <0.22, 1.00, 0.22> texture {TexDarkPlastic} } // post cylinder { <0,0.10,0>, <0,0.45,0>, 0.05 texture {TexMetal} } // base cylinder { <0,0.08,0>, <0,0.10,0>, 0.22 texture {TexMetal} } translate ChairPos } // Wall picture on left wall union { box { <-0.01, 1.15, 0.60>, <0.01, 1.65, 1.40> texture { pigment { color rgb <0.15,0.15,0.16> } finish {diffuse 0.7 specular 0.2 roughness 0.05} } } box { <-0.005, 1.18, 0.63>, <0.005, 1.62, 1.37> texture { pigment { gradient y color_map { [0 color rgb <0.20,0.45,0.75>] [1 color rgb <0.92,0.92,0.92>] } } scale 0.6 } } translate <-RoomHalfW+0.02, 0, 0> } // Simple shelf on right wall union { box { <-0.40, 1.15, -0.12>, <0.40, 1.20, 0.12> texture {TexWood} } // supports box { <-0.36, 1.00, -0.10>, <-0.30, 1.15, 0.10> texture {TexWood} } box { < 0.30, 1.00, -0.10>, < 0.36, 1.15, 0.10> texture {TexWood} } // a couple of "books" box { <-0.18, 1.20, -0.08>, <-0.10, 1.45, 0.08> texture { pigment {color rgb <0.80,0.25,0.25>} finish {diffuse 0.85 specular 0.08 roughness 0.08} } } box { <-0.09, 1.20, -0.08>, <-0.01, 1.42, 0.08> texture { pigment {color rgb <0.25,0.55,0.30>} finish {diffuse 0.85 specular 0.08 roughness 0.08} } } box { < 0.00, 1.20, -0.08>, < 0.08, 1.47, 0.08> texture { pigment {color rgb <0.25,0.35,0.75>} finish {diffuse 0.85 specular 0.08 roughness 0.08} } } translate rotate <0,180,0> }