/* ------------------- CORNELL'S MANSION This is another simple modelling test featuring a touch of radiosity in a great model of a house. Derived from a lovely piece of graph paper, thus proving the fact that graph paper and povray go good together. It's name stemmes from the lighting being entirely from radiosity. I like the effect of this because it looks pretty real. My kudos to the POVRAY team- you ladies & gentlemen are the best. By: ScottishPig Made in Emacs, the worlds greatest modeller (next to vim and notepad) */ #include "colors.inc" #include "shapes.inc" #include "textures.inc" #include "woods.inc" // For an HDRI bubble, uncomment the first one. //camera { fisheye angle 360 location <1,10,7.5> look_at <17,5,7.5> } camera { location <1,1,1> look_at <17,7.5,7.5> } //Interior // camera { location <-10,10,-15> look_at <17,7.5,7.5> } //Exterior // camera { location <1,1,12> look_at <4,7,0> } //Interior Trial // camera { location <1,7.5,7.5> look_at <17,7.5,7.5> } //Interior2 sky_sphere { pigment { color rgb<.2,.5,.8>*2 }} global_settings { radiosity { pretrace_start 0.1 pretrace_end 0.05 count 500 nearest_count 10 error_bound 2.5 recursion_limit 5 low_error_factor 0.2 minimum_reuse 0.015 adc_bailout 0.01/2} } ////////////////////////////////////////////////////////////////////////////// #declare skysph=difference { sphere { <17,7.5,7.5>, 25 } sphere { <17,7.5,7.5>, 24 } texture { pigment { color rgb<.25,.5,.8>} finish {ambient 20}} } #declare glasstex = texture { pigment { color rgbt <1,1,1,.95>} finish {reflection 0 specular 0} } #declare window0 = union { box { <2,10,0> <4,12,.25>} cylinder { <3,12,0>, <3,12,.25>, 1} } #declare window_ext = union { box { <2,10,-1> <4,12,8>} cylinder { <3,12,-1>, <3,12,8>, 1} } #declare windowglass=union { box { <2.05,10.05,0.1> <4,12,0.2>} cylinder { <3,12,0.1>, <3,12,0.2>, 1} texture { glasstex} } #declare window1=difference { object {window0} box {<2.2,10.2,-0.5> <2.6,10.6,1.5>} box {<2.8,10.2,-0.5> <3.2,10.6,1.5>} box {<3.4,10.2,-0.5> <3.8,10.6,1.5>} ////////////////////////////////////////// box {<2.2,10.8,-0.5> <2.6,11.2,1.5>} box {<2.8,10.8,-0.5> <3.2,11.2,1.5>} box {<3.4,10.8,-0.5> <3.8,11.2,1.5>} ////////////////////////////////////////// box {<2.2,11.4,-0.5> <2.6,11.8,1.5>} box {<2.8,11.4,-0.5> <3.2,11.8,1.5>} box {<3.4,11.4,-0.5> <3.8,11.8,1.5>} ////////////////////////////////////////// box {<2.2,12,-0.5> <2.6,12.4,1.5>} box {<2.8,12,-0.5> <3.2,12.4,1.5>} box {<3.4,12,-0.5> <3.8,12.4,1.5>} ////////////////////////////////////////// box {<2.2,12.4,-0.5> <2.6,13,1.5>} box {<2.8,12.4,-0.5> <3.2,13,1.5>} box {<3.4,12.4,-0.5> <3.8,13,1.5>} } #declare window2 = difference { cylinder { <3,12,0>, <3,12,.25>, 1} cylinder { <3,12,-0.5>, <3,12,.5>, .8} box { <2,10,-1> <4,12,2>} } #declare window = union { object {window2} object {window1} object {windowglass} texture { T_Wood6 } } box { <0,10,-.25> <34,9.75,0.25> texture {T_Wood8} } box { <0,10,14.75> <34,9.75,15.25> texture {T_Wood8} } #declare roof0= union { polygon { 4, <0,10,0> <34,10,0> <34,15,5> <0,15,5>} polygon { 4, <0,15,5> <34,15,5> <34,15,10> <0,15,10>} polygon { 4, <0,15,10> <34,15,10> <34,10,15> <0,10,15>} } #declare roof_ins= union { polygon { 4, <0,10,0> <34,10,0> <34,15,5> <0,15,5>} polygon { 4, <0,15,5> <34,15,5> <34,15,10> <0,15,10>} polygon { 4, <0,15,10> <34,15,10> <34,10,15> <0,10,15>} pigment { color rgb<.8,.8,.8>} } #declare windows = union { object { window } object {window translate <7,0,0> } object {window translate <14,0,0> } object {window translate <21,0,0> } object {window translate <28,0,0> } object {window translate <0,0,14.75>} object {window translate <7,0,14.75> } object {window translate <14,0,14.75> } object {window translate <21,0,14.75> } object {window translate <28,0,14.75> } } #declare roof1= difference { object {roof0} object {window0} } #declare roof = difference { object {roof0} object { window_ext } object { window_ext translate <7,0,0> } object { window_ext translate <14,0,0> } object { window_ext translate <21,0,0> } object { window_ext translate <28,0,0> } object { window_ext translate <0,0,10> } object { window_ext translate <7,0,10> } object { window_ext translate <14,0,10>} object { window_ext translate <21,0,10>} object { window_ext translate <28,0,10>} } #declare windowclip= box { <0,10,0> <34,15,5> pigment { color rgb<1,1,1>} translate -<17,12.5,2.5> rotate <-45,0,0> translate <17,10,3.6> } #declare gable0 = union { box { <1.95,10,0> <4.05,12,3.5>} cylinder { <3,12,0>, <3,12,3.5>, 1.05} } #declare gable1 = difference { object {gable0} object {window_ext} object { windowclip } pigment { color rgb<.375,.5,.375> } } #declare gables=union{ object { gable1 } object { gable1 translate <7,0,0> } object { gable1 translate <14,0,0> } object { gable1 translate <21,0,0> } object { gable1 translate <28,0,0> } } #declare brkimg=pigment { image_map { jpeg "brick01.jpg"}} #declare wall1=polygon { 4, <0,0,0> <0,10,0> <34,10,0> <34,0,0> pigment {brkimg scale <5,5,5>} } #declare wall5=polygon { 4, <0,0,0.05> <0,10,0.05> <34,10,0.05> <34,0,0.05> pigment {color rgb<1,1,1>}} #declare wall6=union { object {wall5} object {wall5 translate <0,0,14.9>} } #declare wall2=union { object {wall1} object {wall1 translate <0,0,15>} } #declare wall3=polygon { 6, <0,0,0> <0,0,15> <0,10,15> <0,15,10> <0, 15, 5> <0,10,0> pigment { brkimg rotate <0,90,0> scale <5,5,5>} } #declare wall4=object {wall3 translate <34,0,0>} #declare wall7=polygon { 6, <0.05,0,0> <0.05,0,15> <0.05,10,15> <0.05,15,10> <0.05, 15, 5> <0.05,10,0> } #declare wall8=object {wall7 translate <33.9,0,0>} #declare walls0=union { object { wall2 } object { wall3 } object { wall4 } object { wall6 pigment { color rgb<1,1,1>}} object { wall7 pigment { color rgb<1,1,1>}} object { wall8 pigment { color rgb<1,1,1>} } } #declare floortex=texture{ pigment { checker rgb<1,1,1> rgb<0,0,0>} finish {reflection 0.5}} #declare floorObj=polygon { 4, <0,0,0> <34,0,0> <34,0,15> <0,0,15> texture {floortex} } #declare window2_co0=difference { cylinder { <4.2,7,-0.25>, <4.2,7,.25>, 1.2} box { <4,5,-1> <6,10,1> } box { <3,7,-2 > <5,3,2 >} } #declare window2_co1 = difference { cylinder { <3.8,7,-0.25>, <3.8,7,.25>, 1.2} box { <2,5,-1> <4,10,1> } box { <3,7,-2 > <5,3,2 >} } #declare window2_co2 = box { <3,2,-.25><5,7,.25> } #declare window2_co = union { object {window2_co0} object {window2_co1} object {window2_co2} } #declare window2_0 = difference { cylinder { <4.2,7,-0.25>, <4.2,7,.25>, 1.2} cylinder { <4.2,7,-0.5>, <4.2,7,.5>, 1} box { <4,5,-1> <6,10,1> } box { <3,7,-2 > <5,3,2 >} } #declare window2_1 = difference { cylinder { <3.8,7,-0.25>, <3.8,7,.25>, 1.2} cylinder { <3.8,7,-0.5>, <3.8,7,.5>, 1} box { <2,5,-1> <4,10,1> } box { <3,7,-2 > <5,3,2 >} } #declare window2_2 = union { box {<3,2,-.25> <3.2,7,.25>} box {<5,2,-.25> <4.8,7,.25>} box {<3,2,-.25> <5,2.2,.25>} } #declare window2_frame=union{ object {window2_0} object {window2_1} object {window2_2} texture {T_Wood6} } #declare window2_com=difference { object {window2_co texture {T_Wood6}} box { <3.2,2.2,-.5> <3.8, 2.8, .5>} box { <4.8,2.2,-.5> <4.2, 2.8, .5>} box { <3.2,3,-.5> <3.8, 3.6, .5>} box { <4.8,3,-.5> <4.2, 3.6, .5>} box { <3.2,3.8,-.5> <3.8, 4.4, .5>} box { <4.8,3.8,-.5> <4.2, 4.4, .5>} box { <3.2,4.6,-.5> <3.8, 5.2, .5>} box { <4.8,4.6,-.5> <4.2, 5.2, .5>} box { <3.2,5.4,-.5> <3.8, 6, .5>} box { <4.8,5.4,-.5> <4.2, 6, .5>} box { <3.2,6.2,-.5> <3.8, 6.8, .5>} box { <4.8,6.2,-.5> <4.2, 6.8, .5>} box { <3.2,7,-.5> <3.8, 9, .5>} box { <4.8,7,-.5> <4.2, 9, .5>} } #declare window2=union { object {window2_com} object {window2_frame} object {window2_co texture {glasstex} scale <1,1,0.25>} } #declare doorw_0=union { cylinder { <33.75,3,7.5>, <34.25, 3, 7.5>, 1.5 } box {<33.75,0,6> <34.25,3,9>} } #declare doorw_1=difference { object {doorw_0} cylinder { <33.5,3,7.5>, <34.5, 3, 7.5>, 1 } box {<33.5,0,6.5> <34.5,3,8.5>} } #declare door_=union { object {doorw_1 texture {T_Wood2}} cylinder { <33.8,3,7.5>, <34.2, 3, 7.5>, 1.5 texture {T_Wood8}} box {<33.8,0,6> <34.2,3,9> texture {T_Wood8}} } #declare walls_fin=difference { object {walls0} object {window2_co translate <2.5,0,0>} object {window2_co translate <2.5,0,15>} object {window2_co translate <9.5,0,0>} object {window2_co translate <9.5,0,15>} object {window2_co translate <16.5,0,0>} object {window2_co translate <16.5,0,15>} object {window2_co translate <23.5,0,0>} object {window2_co translate <23.5,0,15>} object {doorw_0} } #declare window2s=union { object {window2 translate <2.5,0,0>} object {window2 translate <2.5,0,15>} object {window2 translate <9.5,0,0>} object {window2 translate <9.5,0,15>} object {window2 translate <16.5,0,0>} object {window2 translate <16.5,0,15>} object {window2 translate <23.5,0,0>} object {window2 translate <23.5,0,15>} } #declare ltbright=texture { pigment { color rgb<1,1,1>*4} finish { ambient 10 } } #declare chandelier_0=difference { sphere { <17,7.5,7.5>, 2.5 texture { ltbright } } box { <9 ,7.5,4> <20,10,10> } box { <9,5,4> <20,0,10> } } #declare chandelier_1=union { //object {chandelier_0} cylinder { <17,7.5,7.5>, <17,7,7.5>, 2.55 pigment {color rgb<0,.5,0>}} cylinder { <17,7.5,7.5>, <17,14.995,7.5>, 0.5 texture {pigment {color rgb<.5,.5,.5>} finish { specular .25 reflection .8}}} } #declare chandelier = object {chandelier_1 translate -<17,14.995,7.5> scale .375 translate <17,14.995,7.5> } #declare chandeliers = union { object {chandelier } object {chandelier translate <-10,0,0>} object {chandelier translate <10,0,0>} } light_source { <0,0,0> color rgb<1,1,1>*.375 area_light <1,0,0><0,0,1> 5 5 looks_like {chandelier_0 translate -<17,14.995,7.5> scale .375 translate <17,14.995,7.5> } } light_source { <0,0,0> color rgb<1,1,1>*.375 area_light <1,0,0><0,0,1> 5 5 looks_like {chandelier_0 translate -<17,14.995,7.5> scale .375 translate <17,14.995,7.5> } translate <10,0,0> } light_source { <0,0,0> color rgb<1,1,1>*.375 area_light <1,0,0><0,0,1> 5 5 looks_like {chandelier_0 translate -<17,14.995,7.5> scale .375 translate <17,14.995,7.5> } translate <-10,0,0> } // O B J E C T S object { skysph } object { chandeliers } object { door_ } object { gables rotate <0,180,0> translate <34, 0, 15> } object { gables } object { windows } object { roof pigment {color rgb<.375,.5,.375>}} object { roof translate <0,-0.0625,0> pigment { color <1,1,1>}} object { walls_fin } object { floorObj } object { window2s }