#declare FurnWood= texture { pigment {color rgb 1} } #declare DrawerWood= texture { pigment { color rgb 0.5 } } #declare GoldTex= texture { pigment {color rgb <1,1,0>} } #declare Knob= union { sphere { 0,1 scale <0.02,0.02,0.01> translate <0,0,-0.02> } cylinder { <0,0,-0.02> <0,0,0> 0.0075 } } #declare Drawer = union { difference { union { box { <0.01,0.01,0> <0.36,0.16,-0.01> } cylinder { <0.01,0.01,0> <0.36,0.01,0> 0.009 } cylinder { <0.01,0.16,0> <0.36,0.16,0> 0.009 } cylinder { <0.01,0.01,0> <0.01,0.16,0> 0.009 } cylinder { <0.36,0.01,0> <0.36,0.16,0> 0.009 } sphere { <0.01,0.01,0> 0.009 } sphere { <0.01,0.16,0> 0.009 } sphere { <0.36,0.01,0> 0.009 } sphere { <0.36,0.16,0> 0.009 } } box { <-0.01,-0.01,0> <0.38,0.2,0.02> } } difference { box { <0.017,0.01,0> <0.335,0.14,0.45> } box { <0.03,0.023,-0.01> <0.322,0.16,0.437> } texture { DrawerWood } } object { Knob translate <0.185,0.095,-0.01> } texture {FurnWood} } #declare CenterDrawer= union { box { <0.002,0.002,0.015> <0.298,0.0398,0> } difference { box { <0.005,0.005,0.25> <0.295,0.035,0.015> } box { <0.015,0.008,0.24> <0.285,0.06,-0.01> } texture {DrawerWood} } object { Knob scale 0.5 translate <0.15,0.02,0> texture {GoldTex} } texture { FurnWood } } #declare OuterSide= difference { box { <0,0,0> <0.015,0.66,0.55> } box { <-0.01,-0.01,-0.01> <0.016,0.1,0.015> } box { <-0.01,0.61,-0.01> <0.016,0.661,0.015> } } #declare InnerSide= difference { box { <0,0,0> <0.015,0.61,0.55> } box { <-0.01,-0.01,-0.01> <0.016,0.1,0.015> } } #declare DeskPlinth= difference { box { <-0.5,0,-0.315> <0.5,0.1,-0.3> } union { cylinder { <-0.08,-0.04,-0.316> <-0.08,-0.04,-0.299> 0.1 } cylinder { <0.08,-0.04,-0.316> <0.08,-0.04,-0.299> 0.1 } difference { cylinder { <0,0,-0.316> <0,0,-0.299> 0.1 scale <3,1,1> translate <0.08,-0.04,0> } box { <0.08,-0.1,-0.4> <-0.5,0.1,0.4> } } difference { cylinder { <0,0,-0.316> <0,0,-0.299> 0.1 scale <3,1,1> translate <-0.08,-0.04,0> } box { <-0.08,-0.1,-0.4> <0.5,0.1,0.4> } } scale <1,0.8,1> } translate <0.5,0,0.3> scale <0.37,1,1> } #declare LeftDrawers= union { object { OuterSide } object { InnerSide translate <0.355,0,0> } object { DeskPlinth } object { Drawer translate <0,0.1,-0.002> } object { Drawer translate <0,0.27,-0.1> } object { Drawer translate <0,0.44,-0.002> } texture {FurnWood} } #declare RightDrawers= union { object { OuterSide translate <0.355,0,0> } object { InnerSide translate <0,0,0> } object { DeskPlinth } object { Drawer translate <0,0.1,-0.002> } object { Drawer translate <0,0.27,-0.002> } object { Drawer translate <0,0.44,-0.002> } texture {FurnWood} } #declare DeskBase= box { <0.355,0.61,0.015> <1.085,0.62,0.55> texture {FurnWood} } #declare HF= height_field { tga "hf.tga" smooth scale <0.084,0.007,0.04> // Changing this scaling form 0.007 to 0.006 seems to remove the problem rotate <-90,0,0> } #declare Int=0; #declare PlinthHF= union { #while(Int<7) object { HF translate } #declare Int=Int+1; #end } #declare MainPlinth= union { difference { box { <0,0.61,0> <1.44,0.66,0.015> } box { <0.57,0.62,-0.01> <0.87,0.67,0.02> } box { <0.015,0.615,-0.001> <0.555,0.655,0.006> } box { <0.885,0.615,-0.001> <1.425,0.655,0.006> } } intersection { object { PlinthHF translate <0.885,0.615,0.006> } box { <0.885,0.615,-0.001> <1.425,0.655,0.006> } } intersection { object { PlinthHF translate <0.015,0.615,0.006> } box { <0.015,0.615,-0.001> <0.555,0.655,0.006> } } texture { FurnWood } } #declare Desk= union { object {MainPlinth} object { CenterDrawer translate <0.57,0.62,-0.05> } object { DeskBase } object { LeftDrawers } object { RightDrawers translate <1.07,0,0> } } object {Desk} camera { location <0.9,0.7,-0.3> look_at <1.1,0.6,0> } light_source { <100,100,-100> color rgb 1 }