// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2000-10-19 by samuel

background{ color rgb < 1, 1, 1 > }

light_source {
  < 2.00, 6.00, 5.00 >
  color rgb < 1.00, 1.00, 1.00 >
} 

camera {
  location  < -10.00,15.00, 8.00 >
//  right     < 2.40, 0.00, 0.00 >
//  up        < 0.00, 0.00, 1.80 >
  sky       < 0.00, 0.00, 1.00 >
  look_at   < 0.00, 4.00, 4.00 >
} 

//amarelo
#declare amarelo = 
  texture {
    pigment { color rgb < 1, 1, 0 > }
    finish {diffuse 0.8 specular 0.5 roughness 0.005 ambient 0.1 phong 1}  
}

#declare vermelho = 
  texture {
    pigment { color rgb < 1, 0, 0> }
finish {phong 1}
}  

#declare verde =
  texture {
    pigment { color rgb < 0, 1, 0> }
    normal { bumps 0.6 scale 0.2 }
    finish {phong 1}
}

#declare azul =
  texture {
    pigment { color rgb <0, 0, 1 >}
    normal {
      gradient y
      frequency 3
      turbulence .5
      normal_map {
        [0.00 granite]
        [0.25 spotted turbulence .35]
        [0.50 marble turbulence .5]
        [0.75 bozo turbulence .25]
        [1.00 granite]
      }
    }
    finish {phong 1}
}

#declare cloudarea =
texture {    
pigment { color rgb <1,0,0>}
normal {
      gradient y
      frequency 3
      turbulence .5
      normal_map {
        [0.00 granite]
        [0.25 spotted turbulence .35]
        [0.50 marble turbulence .5]
        [1.75 bozo turbulence .25]
        [0.00 granite]
      }
    }
finish {phong 1}
}

#declare preto =
  texture {
    pigment { color rgb <0, 0, 0> }
  finish {phong 1}
}

#declare circ=
blob {
    threshold 0.5
    sphere { <2,2,7>, 3, 2 texture{cloudarea} }
    sphere { <7,7,2>, 3, 2 texture{amarelo} }
    cylinder {<2,2,7>,<7,7,2>,1,1}
    finish { phong 1 }
  }
 
#declare circ1=
blob {
  threshold 0.5
  sphere {<2,2,2>, 3, 2 texture {azul}}
  sphere {<7,7,7>, 3, 2 texture {verde}}
  cylinder {<2,2,2>,<7,7,7>, 1,1}
  finish { phong 1 }
}
#declare cort=
texture{
pigment {color rgb <1,1,0> transmit 0.5}
finish { phong 1}
}


#declare transp=
sphere {<4.5,4.5,4.5>, 2.5 texture {cort}
} 

#declare caixa_verde=
box {
<-2,7,4.5>,<15,13,15>
texture {
     pigment {
    marble
    turbulence 0.5
    lambda 1.5
    omega 0.8
    octaves 5
    frequency 3
    color_map {
      [0.00 color <1,0,0>]
      [0.33 color <0, 0, 1>]
      [0.66 color <1,1,0>]
      [1.00 color <1,0,0>]
    }
    rotate 45*z
  }
      finish { phong 1 }
    }
}

#declare caixa_amarela=
box {
<-2,7,-2>,<15,13,4.5>
texture {amarelo}
}
// Aqui está a cena, finalmente:
difference{
difference{
union{
object {circ}
object {circ1}
object {transp}
}
object{caixa_verde}
}
object {caixa_amarela}
}