// Last edited on 2003-12-09 14:38:45 by stolfi // Crystal Castle by Carlos Camolesi 04/09/03 // ------------------------------------------- #include "colors.inc" background{ color rgb < 1.00, 1.00, 1.00 > } #declare ctr = < 0.00, 0.00, 0.00 >; #declare camDir = < 15.00, -15.00, 5.00 >; camera { location ctr + 1.00*camDir right 1.20*x up 0.90*y sky z look_at ctr } light_source { < 20.00, 0.00, 20.00 > color rgb < 1.00, 1.00, 1.00 > } #declare tinta_A = texture { pigment { color rgb < 0.80, 0.80, 1.00 > } finish { diffuse 0.05 specular 0.2 roughness 0.005 ambient 0.05 reflection color rgb < 0.8, 0.8, 1.00 >} } #declare tinta_C = texture { pigment { color rgb < 1.00, 1.00, 1.00 > filter .85} finish { diffuse 0.1 specular 0.1 roughness 0.001 ambient 0.1 reflection 0.15} } #declare tinta_B = texture { pigment { color rgb < 1.00, 0.80, 0.10 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_P = texture { pigment { color rgb < 0.80, 0.75, 0.5> filter 0.5 } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_R = texture { pigment { color rgb < 1.00, 0.00, 0.00> filter 1} finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_G = texture { pigment { color rgb < 0.00, 1.00, 0.00> } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } light_source { <10, 10, -10> White } sphere { 2*y, 1 pigment { color rgb <1, 1, 1> } finish { ambient 0.2 diffuse 0 reflection 0.6 } } sky_sphere { pigment { gradient y color_map { [0 color Red] [1 color Yellow] } scale 2 translate -1 } pigment { bozo turbulence 0.65 octaves 6 omega 0.7 lambda 2 color_map { [0.0 0.1 color rgb <0.85, 0.85, 0.85> color rgb <0.75, 0.75, 0.75>] [0.1 0.5 color rgb <0.75, 0.75, 0.75> color rgbt <1, 1, 1, 1>] [0.5 1.0 color rgbt <1, 1, 1, 1> color rgbt <1, 1, 1, 1>] } scale <0.2, 0.5, 0.2> } } #declare palace = union { box { <-6.00, -3.00, 2.00> < 3.00, 3.00, 0.00> texture { tinta_A} } difference { cylinder { < 3.00, 0.00, 0.00> < 3.00,0.00, 2.00> 3 texture { tinta_A } } box { <-6.00, -3.00, 2.00> < 3.00, 3.00, 0.00> texture { tinta_A} } } difference { sphere { <-3.00, 0.00, 2.00> 3 texture { tinta_A} } box { <-6.00, -3.00, 2.00> < 3.00, 3.00, 0.00> texture { tinta_A} } } difference { cylinder { <-3.00, -3.00, 0.00> <-3.00, -3.00, 2.00> 3 texture { tinta_C} } box { <-6.00, -3.00, 2.00> < 3.00, 3.00, 0.00> texture { tinta_C} } } difference { cylinder { <-3.00, 3.00, 0.00> <-3.00, 3.00, 2.00> 3 texture {tinta_C} } box { <-6.00, -3.00, 2.00> < 3.00, 3.00, 0.00> texture { tinta_C} } } cone { <3.00, -1.00, 2.00> 1 <3.00, -1.00, 5.00> 0 texture {tinta_A} } cone { <5.00, 0.00, 2.00> 1 <5.00, 0.00, 5.00> 0 texture {tinta_A} } cone { <1.00, 1.00, 2.00> 1 <1.00, 1.00, 5.00> 0 texture {tinta_A} } cone { <5.00, 0.00, 2.00> 1 <5.00, 0.00, 5.00> 0 texture {tinta_A} } cone { <-3.00, 5.00, 2.00> 1 <-3.00, 5.00, 5.00> 0 texture {tinta_A} } cone { <-3.00, -5.00, 2.00> 1 <-3.00, -5.00, 5.00> 0 texture {tinta_A} } } #declare earth = plane { z, 0.1 texture { tinta_P } } #declare road = box { <-2, -2, 0> < 11, 2, 0 > texture { tinta_R } } #declare gate = difference { torus { 3.20 .50 rotate -90*z texture {tinta_C} translate < 10.00, 0.00, 0.00> } plane {z,0 texture{ tinta_C} } } box { <0,-4,0> <-1,4,2.5> texture { tinta_A} translate < 10.00, 0.00, 0.00> rotate 180*z } box { <0,-4,0> <-1,4,2.5> texture { tinta_C} translate < 10.00, 0.00, 0.00> rotate 45*z } box { <0,-4,0> <-1,4,2.5> texture { tinta_A} translate < 10.00, 0.00, 0.00> rotate 90*z } box { <0,-4,0> <-1,4,2.5> texture { tinta_C} translate < 10.00, 0.00, 0.00> rotate 135*z } box { <0,-4,0> <-1,4,2.5> texture { tinta_C} translate < 10.00, 0.00, 0.00> rotate 315*z } box { <0,-4,0> <-1,4,2.5> texture { tinta_C} translate < 10.00, 0.00, 0.00> rotate 225*z } box { <0,-4,0> <-1,4,2.5> texture { tinta_A} translate < 10.00, 0.00, 0.00> rotate 270*z } #declare torres = difference { cylinder { <0.00, 0.00, 0.00> <0.00, 0.00, 7.00> 1 texture { tinta_C} } box { <0.00, -2.00, 0.00> <-4.00, 2.00, 10.00> texture {tinta_C} rotate 30*y rotate 90*z translate <0.00, 0.00, 5> } translate <2.0, -6, 0> } difference { cylinder { <0.00, 0.00, 0.00> <0.00, 0.00, 7.00> 1 texture { tinta_C} } box { <0.00, -2.00, 0.00> <-4.00, 2.00, 10.00> texture {tinta_C} rotate 30*y rotate 90*z translate <0.00, 0.00, 5> } translate <4.0, 5, 0> } difference { cylinder { <0.00, 0.00, 0.00> <0.00, 0.00, 7.00> 1 texture { tinta_C} } box { <0.00, -2.00, 0.00> <-4.00, 2.00, 10.00> texture {tinta_C} rotate 60*y rotate 90*z translate <0.00, 0.00, 5> } translate <-8.0, 0, 0> } // Aqui está a cena, finalmente: earth road palace gate torres