#include "direcao_do_sol.inc" #include "parametros.inc" background{ color rgb < 0.710, 0.23, 0.11 > } // ====================================================================== // CORES E TEXTURAS #declare tx_fosca = texture{ pigment{ color rgb < 0.00, 0.50, 0.90 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_base_0 = texture{ pigment{ color rgb < 1.00, 1.0, 1.0 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_base_1 = texture{ pigment{ color rgb < 1.00, 0, 0 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_base_2 = texture{ pigment{ color rgb < 0, 1.0, 0 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_base_preta = texture{ pigment{ color rgb < 0, 0, 0 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_painel = texture { pigment{color rgb <1,0,0>} finish{ambient 1 diffuse 0} } // ====================================================================== // DESCRI��O DA CENA #macro face(tamanho) union { object{box { <0, 0, 0>, texture{tx_base_0} rotate<0, 45, 0> } } } #end #macro painel(tamanho) union { object{box { <0, 0, 0>, texture{tx_painel} rotate<0, 45, 0> translate <0.2121* tamanho, 0, 0.135 * tamanho> } } } #end #macro principal(tamanho) union { difference { union { object{face(tamanho) translate <0.707* tamanho, -2 * tamanho, 0>} object{face(tamanho) translate <0.707 * tamanho, -2 * tamanho, 0> rotate <0, 0, 90>} object{face(tamanho) translate <0.707 * tamanho, -2 * tamanho, 0> rotate <0, 0, 180>} object{face(tamanho) translate <0.707 * tamanho, -2 * tamanho, 0> rotate <0, 0, 270>} } union { object{face(tamanho * 2) translate <1.1242 * tamanho, -2 * tamanho, 0>} object{face(tamanho * 2) translate <1.1242 * tamanho, -2 * tamanho, 0> rotate <0, 0, 90>} object{face(tamanho * 2) translate <1.1242 * tamanho, -2 * tamanho, 0> rotate <0, 0, 180>} object{face(tamanho * 2) translate <1.1242 * tamanho, -2 * tamanho, 0> rotate <0, 0, 270>} } } union { object{painel(tamanho) translate <0.707* tamanho, -0.5 * tamanho, 0>} object{painel(tamanho) translate <0.707 * tamanho, -0.5 * tamanho, 0> rotate <0, 0, 90>} object{painel(tamanho) translate <0.707 * tamanho, -0.5 * tamanho, 0> rotate <0, 0, 180>} object{painel(tamanho) translate <0.707 * tamanho, -0.5 * tamanho, 0> rotate <0, 0, 270>} } } #end #macro teto(tamanho) union { object{box { <0, 0, 0>, texture{tx_base_0} rotate<0, 20, 0> } } object{box { <0, 0, tamanho * 0.3>, texture{tx_painel} rotate<0, 20, 0> } } difference { object{box { <0, 0, 0>, texture{tx_base_0} }} object{box { <0, 0, 0>, texture{tx_base_0} rotate<0, 20, 0> } } } } #end #macro painel_chao(tamanho) union { object{box { <0, 0, 0>, texture{tx_base_0} rotate<0, 10, 0> } } object{box { <0, 0, tamanho * 0.5>, texture{tx_painel} rotate<0, 10, 0> } } } #end #macro chao(tamanho) union { object{box { <-tamanho * 2.5, -tamanho * 2.5, 0>, texture{tx_base_0} }} } #end #macro templo(tamanho) union { object{principal(tamanho) translate <0, 0, tamanho * 1.36>} object{chao(tamanho)} object{teto(tamanho) translate<-tamanho * 0.8, -tamanho * 0.8, tamanho * 1.8>} object{painel_chao(tamanho) translate} } #end // Cena union { templo(1) } #include "camlight.inc" #declare centro_cena = < 1, 0, 1.10 >; #declare raio_cena = 6.0; #local dir_sol = direcao_do_sol(lat, lon, mes, hora); #declare dir_camera = dir_sol; #declare dist_camera = 200 * raio_cena; #declare intens_luz = 1.20; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)