// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2003-10-22 00:28:34 by stolfi
#include "colors.inc"

global_settings { max_trace_level 10 }

// ======================================================================
// CÂMERA 

#declare ctr = < 3.00, 2.00, 5.00 >;
#declare camdir = < 35.00, -25.00, 6.00 >;

camera {
  location  ctr + 0.50*camdir  // Posição do observador.
  right     -1.00*x
  up        0.75*y
  sky       z                     // Qual direção é "para cima"?
  look_at   ctr  // 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 * < +30.0, -50.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, +20.0 >             // Posição da lâmpada.
  color rgb 1.0 * < 1.00, 1.00, 1.00 >   // Intensidade e corda luz.
} 

// ======================================================================
// DESCRIÇÃO DA CENA 

background{ color rgb < 0.75, 1.00, 0.95 > }
#declare cor1= <0.2,1.0,0.5>;
#declare cor3= <0.2,0.5,1.0>;

#declare tx_chao=texture { pigment {checker  color rgb cor1
				             color rgb cor3}
                                finish{
                                   ambient 0.0 diffuse 0.9 // was ambient 0.05 diffuse 0.05
                                    reflection 0.1
                                      specular 0.2 roughness 0.05}}
#declare cor2= <0.7,0.7,0.7>;

#declare tx_palacio=texture{ finish{
                       ambient 0.1 diffuse 0.1
                       reflection 0.25
                      specular 1 roughness 0.001}
                     pigment{color cor2 filter 1}}

#declare tx_pizza=texture { pigment {rgb cor3}
                                finish{
                                   ambient 0.1 diffuse 0.05
                                    reflection 0.4
                                      specular 0.2 roughness 0.05}}
                     

#declare chao = plane{z,0 texture{tx_chao}}

#declare torre= cone{<3,-1,4>,1.0
                     <3,-1,7>,0.001}

#declare palacio = union{ difference{ box {<-1,0,0>,<4,-5,4>}
                                      sphere{<1,0,1>,0.5 }
                                      box{<4,-2,0>,<2,-3,2> }}
                          object{torre }
                          object{torre translate<-3,1,0>}
                          texture{tx_palacio}
                          interior{ior 1.5}
                        }
#declare pizza = union{ cylinder {<7,4,0>,<7,4,10>,2}
                        torus{3,1  rotate 90*x translate<7,4,10>}
                        texture {tx_pizza}
                      }



  
// Aqui está a cena, finalmente:

union{  
object{chao}
object{palacio}
object{pizza}
}