// MC930 - Trabalho final parte 4 // Last edited on 2001-01-11 12:00:40 by Alencar N. S. Junior // MONUMENTO #include "textures.inc" #include "colors.inc" #include "stones.inc" #include "golds.inc" #include "stones1.inc" #include "stones2.inc" #include "metals.inc" #declare centro_do_monumento = < 0, 2, 6 >; //pontos para a superficie de Bezier-A #declare A1 = <1,4,2>; #declare A2 = <2.5+0.5,4,2.6>; #declare A3 = <2.7+1,3,2.8>; #declare A4 = <3,2,3>; #declare A5 = <1,4,1.6>; #declare A6 = <2.5+0.5,4,2.2>; #declare A7 = <2.7+1,3,2.4>; #declare A8 = <3,2,2.6>; #declare A9 = <1,4,1.3>; #declare A10 = <2.5+0.5,4,1.9>; #declare A11 = <2.7+1,3,2.1>; #declare A12 = <3,2,2.3>; #declare A13 = <1,4,0.8>; #declare A14 = <2.5+0.5,4,1.6>; #declare A15 = <2.7+1,3,1.8>; #declare A16 = <3,2,2>; #declare patchA = //Superficie de Bezier-A em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, A1,A2,A3,A4, A5,A6,A7,A8, A9,A10,A11,A12, A13,A14,A15,A16 } //pontos para a superficie de Bezier-B #declare B1 = <3,2,3>; #declare B2 = <3,1.5-0.5,3.2>; #declare B3 = <-1.5,1.5+0.5,3.8>; #declare B4 = <-1.5,1,4>; #declare B5 = <3,2,2.5>; #declare B6 = <3,1.5-0.5,2.8>; #declare B7 = <-1.5,1.5+0.5,3.4>; #declare B8 = <-1.5,1,3.6>; #declare B9 = <3,2,2.3>; #declare B10 = <3,1.5-0.5,2.5>; #declare B11 = <-1.5,1.5+0.5,3.1>; #declare B12 = <-1.5,1,3.3>; #declare B13 = <3,2,2>; #declare B14 = <3,1.5-0.5,2.2>; #declare B15 = <-1.5,1.5+0.5,2.8>; #declare B16 = <-1.5,1,3>; #declare patchB = //Superficie de Bezier-B em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, B1,B2,B3,B4, B5,B6,B7,B8, B9,B10,B11,B12, B13,B14,B15,B16 } //pontos para a superficie de Bezier-C #declare C1 = <-1.5,1,4>; #declare C2 = <-1-0.5,0.8-1,4.2>; #declare C3 = <-0.5-0.5,0.7-0.5,4.8>; #declare C4 = <0,0.5,8>; #declare C5 = <-1.5,1,3.6>; #declare C6 = <-1-0.5,0.8-1,3.8>; #declare C7 = <-0.5-0.5,0.7-0.5,4.4>; #declare C8 = <0,0.5,4.6>; #declare C9 = <-1.5,1,3.3>; #declare C10 = <-1-0.5,0.8-1,3.5>; #declare C11 = <-0.5-0.5,0.7-0.5,4.1>; #declare C12 = <0,0.5,4.3>; #declare C13 = <-1.5,1,3>; #declare C14 = <-1-0.5,0.8-1,3.2>; #declare C15 = <-0.5-0.5,0.7-0.5,3.8>; #declare C16 = <0,0.5,3>; #declare patchC = //Superficie de Bezier-B em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, C1,C2,C3,C4, C5,C6,C7,C8, C9,C10,C11,C12, C13,C14,C15,C16 } //pontos para a superficie de Bezier-D #declare D1 = <1,3.5,2>; #declare D2 = <2.5+0.5,3.5,2.6>; #declare D3 = <2.2+1,3,2.8>; #declare D4 = <2.5,2.5,2>; #declare D5 = <1,3.5,1.6>; #declare D6 = <2.5+0.5,3.5,2.2>; #declare D7 = <2.2+1,3,2.4>; #declare D8 = <2.5,2.5,2.6>; #declare D9 = <1,3.5,1.3>; #declare D10 = <2.5+0.5,3.5,1.9>; #declare D11 = <2.2+1,3,2.1>; #declare D12 = <2.5,2.5,2.3>; #declare D13 = <1,3.5,0.8>; #declare D14 = <2.5+0.5,3.5,1.6>; #declare D15 = <2.2+1,3,1.8>; #declare D16 = <2.5,2.5,2>; #declare patchD = //Superficie de Bezier-A em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, D1,D2,D3,D4, D5,D6,D7,D8, D9,D10,D11,D12, D13,D14,D15,D16 } //pontos para a superficie de Bezier-E #declare E1 = <2.5,2.5,3>; #declare E2 = <2.5,2-0.5,3.2>; #declare E3 = <-2,2+0.5,3.8>; #declare E4 = <-2,1.5,4>; #declare E5 = <2.5,2.5,2.5>; #declare E6 = <2.5,2-0.5,2.8>; #declare E7 = <-2,2+0.5,3.4>; #declare E8 = <-2,1.5,3.6>; #declare E9 = <2.5,2.5,2.3>; #declare E10 = <2.5,2-0.5,2.5>; #declare E11 = <-2,2+0.5,3.1>; #declare E12 = <-2,1.5,3.3>; #declare E13 = <2.5,2.5,2>; #declare E14 = <2.5,2-0.5,2.2>; #declare E15 = <-2,2+0.5,2.8>; #declare E16 = <-2,1.5,3>; #declare patchE = //Superficie de Bezier-E em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, E1,E2,E3,E4, E5,E6,E7,E8, E9,E10,E11,E12, E13,E14,E15,E16 } //pontos para a superficie de Bezier-F #declare F1 = <-2,1.5,4>; #declare F2 = <-1.5-0.5,1.3-1,4.2>; #declare F3 = <-1-0.5,-0.5-0.5,4.8>; #declare F4 = <0,0,8>; #declare F5 = <-2,1.5,3.6>; #declare F6 = <-1.5-0.5,1.3-1,3.8>; #declare F7 = <-1-0.5,-0.5-0.5,4.4>; #declare F8 = <0,0,4.6>; #declare F9 = <-2,1.5,3.3>; #declare F10 = <-1.5-0.5,1.3-1,3.5>; #declare F11 = <-1-0.5,-0.5-0.5,4.1>; #declare F12 = <0,0,4.3>; #declare F13 = <-2,1.5,3>; #declare F14 = <-1.5-0.5,1.3-1,3.2>; #declare F15 = <-1-0.5,-0.5-0.5,3.8>; #declare F16 = <0,0,3>; #declare patchF = //Superficie de Bezier-F em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, F1,F2,F3,F4, F5,F6,F7,F8, F9,F10,F11,F12, F13,F14,F15,F16 } #declare viga = union { // Casca externa object {patchA texture {T_Stone1}} object {patchB texture {T_Stone1}} object {patchC texture {T_Stone1}} // Casca interna object {patchD texture {T_Stone1}} object {patchE texture {T_Stone1}} object {patchF texture {T_Stone1}} } #declare pedestal = union { object {viga} box { <0,4,0> <1,3.5,2> texture{ T_Stone1 } } box { <0,0.5,0> <1,0,10> texture{ T_Stone1 } } } #declare estatua = cylinder { <0.5,0.25,2>, <0.5,0.25,3.5>, 0.25 texture {T_Chrome_1A} } #declare monumento = union { object{pedestal} object{estatua} } // PAVIMENTO #declare pavimento = plane{ z, -1 texture{ brick texture{T_Gold_1A}, texture{pigment {color rgb <0,0,0>}} // pigment{ checker // color rgb < 0.80, 0.90, 1.00 >, // color rgb < 0.20, 0.70, 1.00 > // } // finish{ diffuse 0.9 ambient 0.05 specular 0.3 roughness 0.1 } } } // FUNDO background { SkyBlue } // EIXOS #declare eixos_cartesianos = union { cylinder { <0,0,0>, <7,0,0>, 0.02 pigment { color rgb <1,0,0> } } cylinder { <0,0,0>, <0,7,0>, 0.02 pigment { color rgb <0,1,0> } } cylinder { <0,0,0>, <0,0,7>, 0.02 pigment { color rgb <0,0,1> } } } object { eixos_cartesianos } object { pavimento } object { monumento } // CÂMERA #declare centro_da_cena = centro_do_monumento; #declare raio_da_cena = 5; #declare direcao_da_camera = vnormalize( < 0.5, 1, 0 > ); #declare dist_da_camera = 6.0 * raio_da_cena #declare pos_da_camera = centro_da_cena + dist_da_camera * direcao_da_camera; camera { location pos_da_camera right < -0.64, 0.00, 0.00 > up < 0.00, 0.48, 0.00 > sky z look_at centro_da_cena } // ILUMINAÇÃO #declare direcao_da_luz = vrotate(direcao_da_camera, < 10, 10, 10 >); #declare intens_da_luz = 1.25; light_source { 20 * raio_da_cena * direcao_da_luz color rgb intens_da_luz * < 1, 1, 1 > }