// This work is licensed under the Creative Commons Attribution 3.0 Unported License. // To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/ // or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, // California, 94041, USA. // Persistence Of Vision raytracer sample file. // // -w320 -h240 // -w800 -h600 +a0.3 //===================== RENAISSANCE PATIO ===================================== //===================== RADIANCE AND ENVIRONMENT SETTINGS ===================== #version 3.7; #declare Rad_Quality = 2; global_settings { assumed_gamma 1.0 #switch (Rad_Quality) #case (1) radiosity { // --- Settings 1 (fast) --- pretrace_start 0.08 pretrace_end 0.02 count 50 error_bound 0.5 recursion_limit 1 } #break #case (2) radiosity { // --- Settings 2 (medium quality) --- pretrace_start 0.08 pretrace_end 0.01 count 120 error_bound 0.25 recursion_limit 1 } #break #case (3) radiosity { // --- Settings 3 (high quality) --- pretrace_start 0.08 pretrace_end 0.005 count 400 error_bound 0.1 recursion_limit 1 } #break #case (4) radiosity { // --- Settings 4 (medium quality, recursion_limit 2) --- pretrace_start 0.08 pretrace_end 0.005 count 350 error_bound 0.15 recursion_limit 2 } #break #end } fog { fog_type 2 fog_alt 1.3 fog_offset 0 color rgb <0.7, 0.8, 0.9> distance 800 } light_source {<1000, 10000, -15000> color rgb <1.0, 0.9, 0.78>*2.3} sphere { // --- Sky --- <0, 0, 0>, 1 texture { pigment { gradient y color_map { [0.0 color rgb < 1.0, 1.0, 1.0 >] [0.3 color rgb < 0.5, 0.6, 1.0 >] } } finish { diffuse 0 #if (version < 3.7) ambient 1 #else emission 1 #end } } scale 10000 hollow on no_shadow } //===================== THE SCENERY ITSELF ==================================== #include "colors.inc" camera { location <500,150,0> angle 65 // direction z right x*image_width/image_height look_at <0,150,320> } plane {y,0 pigment {color rgb <0.776,0.706,0.706>}} #declare Arch_01 = union { difference { cylinder {<-20,0,0>,<20,0,0>,140} cylinder {<-21,0,0>,<21,0,0>,130} torus {130 2 rotate z*90 translate x*20} torus {130 2 rotate z*90 translate x*-20} } difference { cylinder {<-18,0,0>,<18,0,0>,130} cylinder {<-21,0,0>,<21,0,0>,125} } torus {139 1 rotate z*90 translate x*20} torus {136 1 rotate z*90 translate x*20} torus {139 1 rotate z*90 translate x*-20} torus {136 1 rotate z*90 translate x*-20} clipped_by {plane {y,0 inverse}} } #macro SphereBox (Radius) #local SpRad = sqrt (Radius*Radius + Radius*Radius); intersection { sphere {0,SpRad} box {<-Radius,0,-Radius>,} } #end #declare Column_01 = union { box {<-40,0,-40>,<40,50,40>} box {<-35,50,-35>,<35,60,35>} cylinder {<0,60,0>,<0,66,0>,28} torus {28 3 translate y*63} difference { cylinder {<0,66,0>,<0,70,0>,25} torus {25 2 translate y*68} } cylinder {<0,70,0>,<0,74,0>,25} torus {25 2 translate y*72} cylinder {<0,74,0>,<0,76,0>,25} sphere {<0,0,0>,23 scale <1,15,1> translate y*76 clipped_by {cylinder {<0,76,0>,<0,265,0>,30}}} torus {20 2 translate y*255} torus {19 2 translate y*258} object {SphereBox (20) rotate z*180 translate y*(260+22)} box {<-25,282,-25>,<25,285,25>} box {<-20,285,-22>,<20,295,22>} difference { cylinder {<-22,290,0>,<22,290,0>,5} cylinder {<-23,290,0>,<23,290,0>,3} } box {<-23,295,-23>,<23,298,23>} box {<-28,298,-28>,<28,300,28>} } #declare Vault_01 = difference { box {<-160,0,-160>,<160,250,160>} cylinder {<-170,0,0>,<170,0,0>,130} cylinder {<-170,0,0>,<170,0,0>,130 rotate y*90} } #declare Vault_02 = //(vault de coin) difference { union { box {<-180,0,-160>,<180,250,160>} box {<-160,0,-180>,<160,250,180>} } cylinder {<-190,0,0>,<190,0,0>,130} cylinder {<-190,0,0>,<190,0,0>,130 rotate y*90} } #declare Spindle_01 = lathe{ cubic_spline 12, <0.017005,-0.005668>, <0.117619,-0.004251>, <0.123287,0.072272>, <0.068020,0.124704>, <0.076523,0.195559>, <0.141709,0.444967>, <0.075106,0.524324>, <0.138875,0.616435>, <0.055267,0.916859>, <0.137458,0.973543>, <0.161549,1.000468>, <0.204061,0.991965> } #declare Band_01 = union { box {<0,0,-25>,<-1,60,25>} box {<0,0,-25>,<5,2,25>} box {<0,8,-25>,<3,2,25>} box {<0,8,-25>,<6,15,25>} box {<0,8,-10>,<6,15,-8>} box {<0,8,10>,<6,15,8>} box {<0,20,-25>,<3,19,25>} box {<0,50,-25>,<5,60,25>} box {<0,50,-25>,<3,55,25>} box {<0,20,-2>,<3,40,-4>} box {<0,20,-6>,<3,40,-8>} box {<0,20,2>,<3,40,4>} box {<0,20,6>,<3,40,8>} box {<0,42,-25>,<6,40,25>} box {<0,0,-2>,<7,8,-4>} box {<0,0,-6>,<7,8,-8>} box {<0,0,2>,<7,8,4>} box {<0,0,6>,<7,8,8>} } #declare Balcony_01 = union { box {<-10,0,-.5>,<10,10,.5>} cylinder {<-10,5,-.5>,<-10,5,.5>,4} cylinder {<10,5,-.5>,<10,5,.5>,4} } #declare Group1 = union { object {Arch_01 translate <-490,300,0>} object {Arch_01 translate <-490,300,300>} object {Arch_01 translate <-490,300,-300>} object {Column_01 translate <-490,0,150>} object {Column_01 translate <-490,0,-150>} object {Column_01 translate <-490,0,-450>} object {Column_01 translate <-490,0,450>} object {Column_01 translate <-790,0,150>} object {Column_01 translate <-790,0,-150>} object {Column_01 translate <-790,0,-450>} object {Column_01 translate <-790,0,450>} object {Column_01 translate <-790,0,-450-40>} object {Column_01 translate <-790,0,450+40>} object {Arch_01 rotate y*90 translate <-490-150,300,150>} object {Arch_01 rotate y*90 translate <-490-150,300,-150>} object {Arch_01 rotate y*90 translate <-490-150,300,450>} object {Arch_01 rotate y*90 translate <-490-150,300,-450>} object {Arch_01 rotate y*90 translate <-490-150,300,450+40>}//doubleaux object {Arch_01 rotate y*90 translate <-490-150,300,-450-40>} object {Vault_01 translate <-640,300,0>} object {Vault_01 translate <-640,300,300>} object {Vault_01 translate <-640,300,-300>} object {Vault_02 translate <-640,300,640>}//coin #declare I=0; #while (I < 1000) object {Band_01 translate <-480,500,(-470 + I)>} #declare I=I+50; #end #declare I=0; #while (I < 1000) object {Spindle_01 scale <60,60,60> translate <-500,550,(-500 + I)>} #declare I=I+40; #end object {Balcony_01 scale <1,1,1020> translate <-500,610,0>} object {Balcony_01 scale <1,1,1020> translate <-500,610,0> rotate y*90} object {Balcony_01 scale <1,1,1020> translate <-500,610,0> rotate y*180} object {Balcony_01 scale <1,1,1020> translate <-500,610,0> rotate y*270} box {<-790,0,-810>,<-810,450,810>} } #declare PatioComplete = union { object {Group1} object {Group1 rotate y*90} object {Group1 rotate y*180} object {Group1 rotate y*270} } object {PatioComplete pigment {Wheat} finish {ambient 0.0 diffuse 0.6} } #declare Paving_01 = union { box {<-40,0,-490>,<40,.1,490> translate x*150} box {<-40,0,-490>,<40,.1,490> translate x*-150} box {<-40,0,-490>,<40,.1,490> translate x*490} box {<-40,0,-490>,<40,.1,490> translate x*-480} texture { pigment {color rgb <0.706,0.714,0.776>*.8} finish {ambient 0.0 diffuse 0.6} } } object {Paving_01} object {Paving_01 rotate y*90}