// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2020-09-30 19:57:13 by jstolfi // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_tanque_grande = texture{ pigment{ color rgb < 0.41, 0.41, 0.41 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } // ====================================================================== // DESCRI��O DA CENA #macro robo(E11, E12, E13, E14, E15, D11, D12, D13, D14, D15, E21, E22, E23, E24, E25, D21, D22, D23, D24, D25) #local init = <0, 0, 0>; #local final = <0, 10, 5>; #local troncoInit = cylinder { init, final, 2 } #local pernaEsquerda = object { perna(E12, E13, E14, E15) } #local pernaDireita = object { perna(D12, D13, D14, D15) } #local bracoEsquerdo = object { braco(E22, E23, E24, E25) } #local bracoDireito = object { braco(D22, D23, D24, D25) } union { object { troncoInit texture{ tx_tanque_grande } } object { pernaEsquerda rotate E11*y translate init + <1.6, 0, 0> texture{ tx_tanque_grande } } object { pernaDireita rotate D11*y translate init - <1.6, 0, 0> texture{ tx_tanque_grande } } object { bracoEsquerdo rotate E21*y translate final + <1.6, 0, 0> texture{ tx_tanque_grande } } object { bracoDireito rotate D21*y translate final - <1.6, 0, 0> texture{ tx_tanque_grande } } } #end #macro braco(E21, E23, E24, E25) #local subbracoObj = object { subbraco(E23, E24, E25) } #local bracoObj = cylinder { <0, 0, 0>, <0, 0, 3>, 0.4 } union { object { bracoObj } object { subbracoObj rotate E12*y translate <0, 0, 3> texture{ tx_tanque_grande } } } #end #macro subbraco(E23, E24, E25) #local dedoObj = cylinder { <0, 0, 0>, <0, 0, 2>, 0.2 } #local subbracoObj = cylinder { <0, 0, 0>, <0, 0, 4>, 0.4 } union { object { subbracoObj } object { dedoObj rotate E23*y translate <0, 0, 4> texture{ tx_tanque_grande } } object { dedoObj rotate E24*y translate <0, 0, 4> texture{ tx_tanque_grande } } object { dedoObj rotate E25*y translate <0, 0, 4> texture{ tx_tanque_grande } } } #end #macro perna(E12, E13, E14, E15) #local subpernaObj = object { subperna(E13, E14, E15) } #local pernaObj = cylinder { <0, 0, 0>, <0, 0, 3>, 0.4 } union { object { pernaObj } object { subpernaObj rotate E12*y translate <0, 0, 3> texture{ tx_tanque_grande } } } #end #macro subperna(E13, E14, E15) #local dedoObj = cylinder { <0, 0, 0>, <0, 0, 2>, 0.2 } #local subpernaObj = cylinder { <0, 0, 0>, <0, 0, 4>, 0.4 } union { object { subpernaObj } object { dedoObj rotate E13*y translate <0, 0, 4> texture{ tx_tanque_grande } } object { dedoObj rotate E14*y translate <0, 0, 4> texture{ tx_tanque_grande } } object { dedoObj rotate E15*y translate <0, 0, 4> texture{ tx_tanque_grande } } } #end #macro tronco() #end #macro pescoco() #end #macro cabeca() #end #include "eixos.inc" // Aqui est� a cena, finalmente: union{ #local E11 = 90; #local E12 = 45; #local E13= -45; #local E14= -90; #local E15= 45; #local D11= -90; #local D12= -45; #local D13= 45; #local D14= 90; #local D15= -45; #local E21=90; #local E22=45; #local E23=-45; #local E24=-90; #local E25=45; #local D21=-90; #local D22=45; #local D23=-45; #local D24=-90; #local D25=45; robo(E11, E12, E13, E14, E15, D11, D12, D13, D14, D15, E21, E22, E23, E24, E25, D21, D22, D23, D24, D25) } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 10.00 >; #declare raio_cena = 25.0; #declare dir_camera = < 3, 3.00, 1.00 >; #declare dist_camera = 100*raio_cena; #declare intens_luz = 1.20; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)