// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2009-03-09 18:44:03 by stolfi // ====================================================================== // CÂMERA camera{ location 2.5*< 14.00, 8.00, 4.50 > // Posição do observador. right -0.60*x // Largura RELATIVA da imagem. up 0.60*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 0.00, 1.00, 4.00 > // Para onde a câmera está apontando. } // Nota: os parâmetros "right" e "up" devem ter a mesma proporção // que os parâmetros ${WIDTH} e ${HEIGHT} no Makefile. // ====================================================================== // FONTES DE LUZ light_source{ 10 * < +50.0, +30.0, +50.0 > // Posição da lâmpada. color rgb 1.0 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source{ 10 * < +50.0, -10.0, +10.0 > // Posição da lâmpada. color rgb 0.5 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // EIXOS DE COORDENADAS #macro eixo(ponta,cor,nome) union{ sphere{ <0,0,0>, 0.02 } cylinder{ <0,0,0>, 0.91*ponta, 0.02 } cone{ 0.90*ponta, 0.06, ponta, 0.00 } texture{ pigment{ color rgb cor } finish{ ambient 0.5 diffuse 0.5 } } } #end #macro eixos(tamanho) union{ object{ eixo( , <1.0,0.2,0.2>, "X") } object{ eixo( <0,tamanho,0>, <0.0,0.8,0.0>, "Y") } object{ eixo( <0,0,tamanho>, <0.3,0.3,1.0>, "Z") } } #end // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_mesa = texture{ pigment{ color rgb < 1.00, 0.9, 0.8 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_cadeira = texture{ pigment{ color rgb < 0.51, 0.26, 0 > } finish{ diffuse 0.4 ambient 0.2 } } #declare tx_computador = texture{ pigment{ color rgb < 0.80, 0.80, 0.80 > } finish{ diffuse 0.6 ambient 0.1 } } #declare tx_plataforma = texture{ pigment{ color rgb < 0.30, 0.30, 0.30 > } finish{ diffuse 0.6 ambient 0.1 } } #declare tx_parede = texture{ pigment{ color rgb < 1, 1, 1 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_texto = texture{ pigment{ color rgb < 0.5, 0.5, 1 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_janela = texture{ pigment{ image_map{ jpeg "janela.jpg" } scale<8,4,1> rotate 90*x } finish{ ambient 1 } } // ====================================================================== // DESCRIÇÃO DA CENA #declare raio = 2.000; // Partes da cena: #declare perna = cylinder{ < 0, 0, 0 >, < 0, 0, 2>, 0.1 texture{ tx_mesa } } #declare tabua = box{ <0,0,0>, <4,2,0.15> texture{ tx_mesa } } #declare perna_cadeira = cylinder{ < 0, 0, 0 >, < 0, 0, 1>, 0.1 texture{ tx_cadeira } } #declare tabua_cadeira = box{ <0,0,0>, <1.2,1.2,0.15> texture{ tx_cadeira } } #declare encosto = box{ <0,0,0>, <1.2,0.15,1.2> texture{ tx_cadeira } } #declare tela = box{ <0,0,0>, <2,0.12,1.5> texture{ tx_computador } } #declare base = box{ <0,0,0>, <0.5,0.12,0.3> texture{ tx_computador } } #declare teclado = box{ <0,0,0>, <1.5,0.7,0.1> texture{ tx_computador } } #declare mouse = sphere{ < 0.00, 0.00, 0.00 >, 0.15 scale <1,2,1> texture{ tx_computador } } #declare gabinete = box{ <0,0,0>, <0.6,1.5,1.5> texture{ tx_computador } } #declare plataforma = box{ <0,0,0>, <8,20,1> texture{ tx_plataforma } } #declare parede = box{ <0,0,0>, <1,30,30> texture{ tx_parede } } #declare janela = box{ <0,0,0>, <8,1,4> texture{ tx_janela } } #declare texto = text { ttf "arial.ttf" "UFMSTEC" 0.3, 0 texture{ tx_texto } } #declare mesa = union{ object{ tabua translate<0,0,1.65> } object{ perna translate<0.2,0.2,0> scale 0.9} object{ perna translate<4,0,0> scale 0.9} object{ perna translate<4,2,0> scale 0.9} object{ perna translate<0,2,0> scale 0.9} } #declare computador = union{ object{ tela translate<0,0,0.3> } object{ base translate<0.75,0,0> } object{ teclado translate<0.75,0.6,0> } object{ mouse translate<0,0.8,0.08> } object{ gabinete translate<-1.3,-0.3,0> } } #declare cadeira = union{ object{ tabua_cadeira translate<-0.15,-0.1,0.9> scale 1.1 } object{ encosto translate<-0.15,1,0.9> scale 1.1 } object{ perna_cadeira translate<0,0,0> } object{ perna_cadeira translate<1,0,0> } object{ perna_cadeira translate<1,1,0> } object{ perna_cadeira translate<0,1,0> } } #declare estacao = union{ object{ computador translate<0,0,1.8> } object{ mesa translate<-1.6,-0.4,0> } object{ cadeira translate<0,2,0> scale 1.1 } } //object{ eixos(3.00) } #macro m_estacao(falha) #if(falha) union{ object{ computador translate<0,0,1.8> } object{ mesa translate<-1.6,-0.4,0> } } #else union{ object{ computador translate<0,0,1.8> } object{ mesa translate<-1.6,-0.4,0> } object{ cadeira translate<0,2,0> scale 1.1 } } #end #end #macro estacoes() #declare i=0; #declare n=3; #declare m=4; union{ #while(i} #else object{ m_estacao(0) rotate 180*z translate <4.6*i,7*j,1.3*j>} #end #declare j=j+1; #end object {plataforma rotate 90*z translate <16,-4+(7*i),-1+(1.3*i)>} #declare i=i+1; #end } #end object{ estacoes() rotate 90*z translate <5,-5,0> } object{ parede translate<-19,-10,0>} object{ parede rotate 90*z translate<6,-12,0> } object{ texto rotate 90*y rotate 90*x scale 2 translate<-18,-4,10>} object{ janela translate<-8,-12, 8>}