// MC930: Projeto Final - 19/01/2001 #include "textures.inc" #include "colors.inc" #include "finish.inc" #include "stones.inc" #include "stones1.inc" #include "stones2.inc" background { color rgb < 1.00, 1.00, 0.80 > } // Plano que imita o ceu plane { y, 500 texture { pigment { color rgb <0.22, 0.3, 0.82> } finish { ambient 1 diffuse 0} } texture { pigment { bozo turbulence .5 color_map { [0 color rgb <1, 1, 1>] [1 color rgb <1, 1, 1> filter 1] } } finish { ambient 1 diffuse 0 } scale <1000, 250, 250> rotate <5, 45, 0> } } // Fonte de Luz light_source { < 15.00, 30.00, 50.00 > color rgb 2.25 * < 1.00, 1.00, 0.80 > } // Camera Original camera { location < 19.50, 30.00, 51.00 > right < 2.40, 0.00, 0.00 > up < 0.00, 0.00, 1.80 > sky < 0.00, 1.00, 0.00 > look_at < 10.00, 30.00, 30.00 > } // Declaracao de Tintas e Texturas Usadas em Todo o Trabalho #declare tinta_AMAR = texture { pigment { color rgb < 1.00, 1.00, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_AZUL = texture { pigment { color rgb < 0.00, 0.00, 1.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_VERD = texture { pigment { color rgb < 0.00, 0.50, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_MARR = texture { T_Stone1 } #declare tinta_MARR2 = texture { Glass pigment { color rgb < 0.10, 0.10, 0.05 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_MARR3= texture { Glass pigment { color rgb < 0.20, 0.20, 0.20> } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_CINZ = texture { pigment { color rgb < 0.20, 0.20, 0.20 > } finish { diffuse 0.9 specular 0.3 roughness 0.1 ambient 0.05 } } #declare tinta_BRAN = texture { pigment { color rgb < 1.00, 1.00, 1.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_BEGE = texture { pigment { color Brass } normal { bumps 0.7 scale 0.001 } } #declare tinta_PRET = texture { pigment { color rgb < 0.00, 0.00, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_VIDR = texture { Glass normal { bumps 0.05 scale 0.001 } } // Chao #declare chao = plane { y, 0 pigment {color rgb <0.90, 0.90, 0.90>} } #declare terreo = union { // terreo box { < -11.5, 9.75, -11.5>, < 11.5, 10.50, 11.5> texture { tinta_MARR } } // primeira laje box { < -12, 10, -12>, < 12, 11, 12> texture { tinta_MARR } } } #declare i = 1; #declare g = seed(pi); #declare andares = union { #declare n_and = rand(g) * 30; #while (i < n_and + 1) box { < -11, 5.35 + 5*i, -10.25>, < 11, 5.65 + 5*i, 10.25> texture { tinta_MARR3 } } box { < -11, 7.95 + 5*i, -10.25>, < 11, 8.25 + 5*i, 10.25> texture { tinta_MARR3 } } // paredes de frente box { < -11.5, 5 + 5*i, 10.2>, < -11.0, 10 + 5*i, 11.0> texture { tinta_MARR } } box { < -5.5, 5 + 5*i, 10.2>, < -5.0, 10 + 5*i, 11.0> texture { tinta_MARR } } box { < -0.25, 5 + 5*i, 10.2>, < 0.25, 10 + 5*i, 11.0> texture { tinta_MARR } } box { < 5.0, 5 + 5*i, 10.2>, < 5.5, 10 + 5*i, 11.0> texture { tinta_MARR } } box { < 11.0, 5 + 5*i, 10.2>, < 11.5, 10 + 5*i, 11.0> texture { tinta_MARR } } // janelas de frente box { < -11.0, 5 + 5*i, 9.5>, < -5.5, 10 + 5*i, 10.5> texture { tinta_VIDR } } box { < -4.5, 5 + 5*i, 9.5>, < -0.5, 10 + 5*i, 10.5> texture { tinta_VIDR } } box { < 0.5, 5 + 5*i, 9.5>, < 4.5, 10 + 5*i, 10.5> texture { tinta_VIDR } } box { < 5.5, 5 + 5*i, 9.5>, < 11.0, 10 + 5*i, 10.5> texture { tinta_VIDR } } // paredes de fundo box { < -11.5, 5 + 5*i, -10.2>, < -11.0, 10 + 5*i, -11.0> texture { tinta_MARR } } box { < -5.5, 5 + 5*i, -10.2>, < -5.0, 10 + 5*i, -11.0> texture { tinta_MARR } } box { < -0.25, 5 + 5*i, -10.2>, < 0.25, 10 + 5*i, -11.0> texture { tinta_MARR } } box { < 5.0, 5 + 5*i, -10.2>, < 5.5, 10 + 5*i, -11.0> texture { tinta_MARR } } box { < 11.0, 5 + 5*i, -10.2>, < 11.5, 10 + 5*i, -11.0> texture { tinta_MARR } } // janelas de fundo box { < -10.5, 5 + 5*i, -9.5>, < -5.5, 10 + 5*i, -10.5> texture { tinta_VIDR } } box { < -4.5, 5 + 5*i, -9.5>, < -0.5, 10 + 5*i, -10.5> texture { tinta_VIDR } } box { < 0.5, 5 + 5*i, -9.5>, < 4.5, 10 + 5*i, -10.5> texture { tinta_VIDR } } box { < 5.5, 5 + 5*i, -9.5>, < 10.5, 10 + 5*i, -10.5> texture { tinta_VIDR } } #declare i = i + 1; #end #declare i = 1; } // janelas direitas box { < 11.0, 10, 11.5>, < 11.5, 56, -11.5> texture { tinta_MARR } } // janelas esquerdas box { < -11.0, 10, 11.5>, < -11.5, 56, -11.5> texture { tinta_MARR } } // miolo do predio box { < -11, 6.0, -10>, < 11, 56.0, 10> texture { tinta_MARR2 } } // laje da cobertura box { < -11.5, 56, -11.5>, < 11.5, 56.5, 11.5> texture { tinta_MARR } } // cobertura box { < -9, 56.5, -9>, < 9, 61.0, 9> texture { tinta_MARR2 } } box { < -9.0, 56.5, -9.0>, < -8.5, 61.0, -8.5> texture { tinta_MARR } } box { < 8.5, 56.5, -9.0>, < 9.0, 61.0, -8.5> texture { tinta_MARR } } box { < 8.5, 56.5, 8.5>, < 9.0, 61.0, 9.0> texture { tinta_MARR } } box { < -9.0, 56.5, 8.5>, < -8.5, 61.0, 9.0> texture { tinta_MARR } } box { < -11.5, 59.5, -11.5>, < 11.5, 60, 11.5> texture { tinta_MARR } } box { < -11.5, 50, 10.2>, < -11.0, 61, 11.0> texture { tinta_MARR } } box { < -5.5, 50, 10.2>, < -5.0, 61, 11.0> texture { tinta_MARR } } box { < -0.25, 50, 10.2>, < 0.25, 61, 11.0> texture { tinta_MARR } } box { < 5.0, 50, 10.2>, < 5.5, 61, 11.0> texture { tinta_MARR } } box { < 11.0, 50, 10.2>, < 11.5, 61, 11.0> texture { tinta_MARR } } box { < -11.5, 50, -10.2>, < -11.0, 61, -11.0> texture { tinta_MARR } } box { < -5.5, 50, -10.2>, < -5.0, 61, -11.0> texture { tinta_MARR } } box { < -0.25, 50, -10.2>, < 0.25, 61, -11.0> texture { tinta_MARR } } box { < 5.0, 50, -10.2>, < 5.5, 61, -11.0> texture { tinta_MARR } } box { < 11.0, 50, -10.2>, < 11.5, 61, -11.0> texture { tinta_MARR } } #declare cupula = prism { linear_sweep linear_spline 37, // sweep the following shape from here ... 60, // ... up through here 3, // the number of points making up the shape ... <-11.5,11.5>, <0,6>, <11.5,11.5> texture { tinta_MARR } } #declare cupula2 = prism { linear_sweep linear_spline 37.5, // sweep the following shape from here ... 60.5, // ... up through here 3, // the number of points making up the shape ... <-7.5,10.5>, <0,7.5>, <7.5,10.5> texture { tinta_MARR } } #declare cupula3 = prism { linear_sweep linear_spline 38.5, // sweep the following shape from here ... 59, // ... up through here 3, // the number of points making up the shape ... <-7.5,10.5>, <0,7.5>, <7.5,10.5> texture { tinta_BRAN } } #declare cupula4 = prism { linear_sweep linear_spline 38.5, // sweep the following shape from here ... 61.5, // ... up through here 4, // the number of points making up the shape ... <0,6.5>, <-2.5,9>, <0,10.5>, <2.5,9> texture { tinta_MARR } } #declare cupula5 = difference { union { difference { object { cupula } object { cupula2 } } object { cupula3 } } object { cupula4} } #declare cupula_peq = prism { linear_sweep linear_spline 37, // sweep the following shape from here ... 60, // ... up through here 3, // the number of points making up the shape ... <-8.75,9>, <0,4.5>, <8.75,9> texture { tinta_MARR } } #declare cupula_peq2 = prism { linear_sweep linear_spline 38, // sweep the following shape from here ... 61, // ... up through here 3, // the number of points making up the shape ... <-4.75,8>, <0,6>, <4.75,8> texture { tinta_MARR } } #declare cupula_peq3 = prism { linear_sweep linear_spline 36.5, // sweep the following shape from here ... 58.5, // ... up through here 3, // the number of points making up the shape ... <-4.75,8>, <0,6>, <4.75,8> texture { tinta_BRAN } } #declare cupula_peq4 = prism { linear_sweep linear_spline 38.5, // sweep the following shape from here ... 61.5, // ... up through here 4, // the number of points making up the shape ... <0,5>, <-1.5,7>, <0,8>, <1.5,7> texture { tinta_MARR } } #declare cupula_peq5 = difference { union { difference { object { cupula_peq } object { cupula_peq2 } } object { cupula_peq3 } } object { cupula_peq4} } #declare frontal = box { < -11.75, -6, 10.50>, < -11.25, 10, 11.75> texture { tinta_MARR } } box { < -9.5, 0, 10.50>, < -9.0, 16, 11.75> texture { tinta_MARR } } box { < -5.5, 0, 10.50>, < -5.0, 16, 11.75> texture { tinta_MARR } } box { < -2.0, 0, 10.50>, < -1.5 11, 11.75> texture { tinta_MARR } } box { < 8.5, 0, 10.50>, < 9.0, 11, 11.75> texture { tinta_MARR } } box { < 11.25, 0, 10.50>, < 11.75, 16, 11.75> texture { tinta_MARR } } box { < -12, 6.5, 10.0>, < 12, 16, 11.5> texture { tinta_VIDR } } box { < -12, 0, 10.0>, < -1, 5.5, 11.5> texture { tinta_VIDR } } box { < 8, 0, 10.0>, < 12, 5.5, 11.5> texture { tinta_VIDR } } box { < -12, 0, -12>, < 12, 16, 8> texture { tinta_MARR } } box { < -11.0, 5.5, -11.2>, < 11.0, 6.5, 11.2> texture { tinta_BRAN } } box { < -11.5, 0, -11.5>, < -1.5, 5.5, 11.5> texture { tinta_VIDR } } box { < 8.5, 0, -11.5>, < 11.5, 5.5, 11.5> texture { tinta_VIDR } } box { < 11.5, 0, 0>, < 12.0, 16, 12> texture { tinta_MARR } } box { < -11.5, 0, 0>, < -12.0, 16, 12> texture { tinta_MARR } } box { < -11.9, 8.5, -10.1>, < 11.9, 8.8, 10.1> texture { tinta_MARR3 } } box { < -11.9, 10.8, -10.1>, < 11.9, 11.1, 10.1> texture { tinta_MARR3 } } box { < -11.9, 13.1, -10.1>, < 0, 13.4, 10.1> texture { tinta_MARR3 } } box { < 6, 13.1, -10.1>, < 11.9, 13.4, 10.1> texture { tinta_MARR3 } } #declare entrada = box { < 2.25, 0, -10.5>, < 3.45, 5.5, 10.2> texture { tinta_VIDR }} box { < 3.55, 0, -10.5>, < 4.75, 5.5, 10.2> texture { tinta_VIDR }} difference { box { < -1, 0, -10.5>, < 8, 5.5, 9.75> texture { tinta_MARR } } box { < 2.25, 0, -10.5>, < 4.75, 5.5, 10.0> texture { tinta_MARR } }} #declare predio = union { object { terreo } object { andares } } #declare terreno = box { < -18, 0, -18>, < 18, 0.5, 18> texture { tinta_CINZ } } // Arvore #declare Palm_Material = material{ texture{ pigment{color rgb<0.7,1.0,0.1>} normal {bumps 0.25 scale <1,0.5,0.002>} finish { ambient 0.4 diffuse 0.5 reflection 0.1 phong 0.7 } } } #declare Oleaf = sphere { <1, 0, 1.732> 2.01 clipped_by{sphere {<1,0,-1.732>,2 scale<1,0.03,0.5> }} scale<1,1.35,1>} #declare Zufall1 = seed (1021); #declare Zufall2 = seed (1022); #declare Zufall3 = seed (1023); #macro Palm_Head(Number_of_arms) union{ #local Cno =Number_of_arms; #local Cn =0; #while (Cn ,<0,1.05,0>, 0.3*(1-Ct/Cto)+0.05 scale<0.7,0.9,0.4>} #if ( Ct/2 = int(Ct/2) ) object { Oleaf scale ScFactor* rotate z*Ct/Cto*50 -3*(0.5-rand(Zufall3)) } #else object { Oleaf scale<-1,1,1> scale ScFactor* rotate z*-Ct/Cto*50 -3*(0.5-rand(Zufall3)) } #end scale 1.5*<0.75,1,1>*(1+Cn*0.015) rotate translate }// end of union #local Xp =Xp+sin(Xrot*pi/180)*sin(Yrot*pi/180); #local Yp =Yp+cos(Xrot*pi/180) ; #local Zp =Zp+sin(Xrot*pi/180)*cos(Yrot*pi/180); #local Ct = Ct+1; #end #local Cn = Cn+1; #end scale 0.035 material{Palm_Material} }#end #macro Palme(SegD, Height, Nr_of_arms) #local SegH = 0.10; #local SegScale = 1+Height/10; #local EndNr = int(Height/SegH); #local Palm_Height = EndNr*SegH; #local Segment = difference{ cone{<0,-0.05,0>,0.05,<0,SegH ,0>,SegD } cone{<0,2*SegH/3,0>,0.05,<0,SegH+0.001,0>,SegD } scale <1,1,1> rotate<0,0,0> translate<0,0,0> texture{pigment{color LightWood} normal {bumps 1.0 scale<0.005,0.2,0.005>} finish {ambient 0.45 diffuse 0.55 phong 0.1}}} #local High = 0; #local Nr = 0; union{ #while (Nr< EndNr) #local ScaleY = (1-0.15*rand(Zufall1)); #local ScaleT = (0.5+0.15*cos(pi*High/(Palm_Height))); object{Segment scale *SegScale rotate<20*(0.5-rand(Zufall2)),80*(0.5-rand(Zufall3)),0> translate<7/EndNr*(-0.15+0.15*cos(pi*High/(1.2*Palm_Height))) ,High,0>} #local High= High+0.1*ScaleY*SegScale; #local Nr = Nr + 1; // next Nr #if (Nr = EndNr) object{Palm_Head(Nr_of_arms) scale 1+Height/7 translate<7/EndNr*(-0.15+0.15*cos(pi*High/(1.2*Palm_Height))) ,High,0>} #end #end } #end #declare canteiro1 = cylinder { <-2.0, 0.0, 16.5> <-2.0, 1.0, 16.5> 1 texture { tinta_BRAN } hollow } #declare canteiro2 = cylinder { <12.0, 0.0, 16.5> <12.0, 1.0, 16.5> 1 texture { tinta_BRAN } hollow } #declare final = union { object { predio } object { cupula5 translate <0,-60,-11.75> rotate <90,0,0> translate <0,54.4,11.5>} object { cupula_peq5 translate <0,-60,-11.75> rotate <90,0,0> translate <3,2.75,11.75>} object { frontal } } // Cena Final object { chao } object { terreno } object { final translate <0,6,0>} object { entrada } object { Palme (0.20, 1.55, 12) scale 2.5 rotate<0,0,0> translate<-2,0,16.5>} object { Palme (0.20, 1.55, 12) scale 3.5 rotate<0,0,0> translate<12,0,16.5>} object { canteiro1 } object { canteiro2 }