// Desenho do aquecedor natural de caldeira // Last edited on 2021-01-06 21:30 by Guilherme Londe // ====================================================================== // CORES E TEXTURAS #version 3.6; global_settings{ max_trace_level 30 } background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_espelho = texture{ pigment{ color rgb < 1.000, 1.000, 1.000 > } finish{ diffuse 0.05 reflection 0.95*< 1.000, 1.000, 1.000 > ambient 0 } } #declare tx_azul = texture{ pigment{ color rgb <0.000, 0.000, 0.500> } finish{ diffuse 0 ambient 1} } #declare tx_caldeira = texture{ pigment{ color rgb < 1.000, 0.000, 0.000 > } finish{ diffuse 0 ambient 1 } } #declare tx_xadrez = texture{ pigment{ checker color rgb < 0.600, 0.600, 0.600 >, color rgb < 0.900, 0.900, 0.900 > } finish{ diffuse 0.9 ambient 0.1 } scale 5 } #declare tx_rubi = texture{ pigment{ color rgb < 0.900, 1.00, 1.00 > filter 0.990 } finish{ diffuse 0.01 ambient 0.02 reflection 0.15 specular 0.35 roughness 0.005 } } // ====================================================================== // DESCRICAO // Partes da cena: #macro espelho() difference{ sphere{ <0,0,0>, 0.56 texture{tx_azul} } object{ union{ sphere{ <0,0,0>, 0.54 } object{ box{ <-0.4,-2,-2>, <1,2,2> }} } } texture{tx_espelho} interior{ ior 1.2 fade_color < 0.75, 0.95, 0.95 > fade_power 1000 fade_distance 2.0 } } #end #macro refletor() union{ object{espelho() scale<1.5,1.5,1.5> rotate<0,-40,0> translate<-0.09,0,0.9>} object{cylinder{<-0.65,0,0>, <-0.65,0,0.27>, 0.05 }} } #end #macro espelhos() union{ object{refletor() rotate<0,0,0>} object{refletor() rotate<0,0,120>} object{refletor() rotate<0,0,240>} } #end #macro caldeira() union{ object{cylinder{<0,0,0>, <0,0,1>, 0.05}} object{cylinder{<0,0,0.5>, <0,0,1.01>, 0.2 texture{tx_caldeira}}} } #end #macro chao() object{ box{ < -10, -10, -1 >, < +10, +10, 0 > texture{ tx_xadrez } } } #end #include "eixos.inc" // Aqui esta a cena, finalmente: #include "frontal.inc" #include "direcao_do_sol.inc" #include "camlight.inc" #declare dir_sol = direcao_do_sol(-16, 12, 6 + clock*12.0); #declare raio_cena = 2.0; #declare centro_cena = < 0, 0, 0.5 >; #declare dir_camera = < dir_sol.x, dir_sol.y, dir_sol.z >; #declare dist_camera = raio_cena; #declare intens_luz = 1.20; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz) union{ object{chao()} //object{box{<-1,-1,0>, <1, 1, 2> texture{tx_caldeira}}} object{caldeira()} object{espelhos()} }