// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2021-02-03 15:10:12 by jstolfi #version 3.6; global_settings{ max_trace_level 30 } // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.8, 0.9, 0.8 > } #declare tx_espelho = texture { pigment{color rgb < 1.000, 1.000, 1.000 >} finish{diffuse 0.05 reflection 0.95*< 1.000, 1.000, 1.000 > ambient 0} } #declare tx_grid = texture { pigment{color rgb < 0.000, 0.000, 0.000 >} finish{diffuse 0 ambient 1} } #declare tx_gold= texture { pigment{color rgb <1.000, 0.700, 0.100>} finish{diffuse 0.2 ambient 0.8} } #declare tx_green= texture { pigment{color rgb <0.700, 0.700, 0.000>} finish{diffuse 0.2 ambient 0.8} } #declare tx_window= texture { pigment{color rgb <0.100, 0.100, 0.600>} finish{diffuse 0.5 ambient 0.5 reflection 0.95*<0.000, 0.000, 0.200>} } #declare tx_window2= texture { pigment{color rgb <0.500, 0.500, 0.700>} finish{diffuse 0.5 ambient 0.5 reflection 0.95*<0.000, 0.000, 0.200>} } #declare tx_chao = texture { pigment{color rgb <0.800, 0.900, 0.900>} finish{diffuse 0.2 ambient 0.8} } // ====================================================================== // DESCRIÇÃO DA CENA #declare espelho = box{ <0.00, 0.00, 0.00> <2.00, 0.20, 3.00> texture{tx_espelho} } #declare chao = box{ <20,20,-4> <-20, -20, -5> texture{tx_chao} } //meio da nave #local B = array[4][4]; #local B[0][0] = < 0, 0, 1.5>; #local B[0][1] = < 0, 1, 1.5 >; #local B[0][2] = < 0, 2, 1.5 >; #local B[0][3] = < 0, 3, 1.5 >; #local B[1][0] = < 1, 0, 1.2>; #local B[1][1] = < 1, 1, 1.2 >; #local B[1][2] = < 1, 2, 1.2 >; #local B[1][3] = < 1, 3, 1.2 >; #local B[2][0] = < 1.7, 0, 0.5 >; #local B[2][1] = < 1.7, 1, 0.5 >; #local B[2][2] = < 1.7, 2, 0.5 >; #local B[2][3] = < 1.7, 3, 0.5 >; #local B[3][0] = < 2, 0, 0 >; #local B[3][1] = < 2, 1, 0 >; #local B[3][2] = < 2, 2, 0 >; #local B[3][3] = < 2, 3, 0 >; #local E = array[4][4]; #local E[0][0] = < 2, 0, 0>; #local E[0][1] = < 2, 1, 0 >; #local E[0][2] = < 2, 2, 0 >; #local E[0][3] = < 2, 3, 0 >; #local E[1][0] = < 1.7, 0, -0.3 >; #local E[1][1] = < 1.7, 1, -0.3 >; #local E[1][2] = < 1.7, 2, -0.3 >; #local E[1][3] = < 1.7, 3, -0.3 >; #local E[2][0] = < 1, 0, -0.8>; #local E[2][1] = < 1, 1, -0.8 >; #local E[2][2] = < 1, 2, -0.8 >; #local E[2][3] = < 1, 3, -0.8 >; #local E[3][0] = < 0, 0, -1 >; #local E[3][1] = < 0, 1, -1 >; #local E[3][2] = < 0, 2, -1 >; #local E[3][3] = < 0, 3, -1 >; //ligação meio da nave e parte de baixo #local B[3][0] = (B[2][0]+E[1][0])/2; #local B[3][1] = (B[2][1]+E[1][1])/2; #local B[3][2] = (B[2][2]+E[1][2])/2; #local B[3][3] = (B[2][3]+E[1][3])/2; #local E[0][0] = B[3][0]; #local E[0][1] = B[3][1]; #local E[0][2] = B[3][2]; #local E[0][3] = B[3][3]; //frente da nave #local A = array[4][4]; #local A[0][0] = < 0, 0-3, 0>; #local A[0][1] = < 0, 1-3, 1.5 >; #local A[0][2] = < 0, 2-3, 1.5 >; #local A[0][3] = < 0, 3-3, 1.5 >; #local A[1][0] = < 0.9, 0.3-3, 0>; #local A[1][1] = < 1, 1-3, 1.2 >; #local A[1][2] = < 1, 2-3, 1.2 >; #local A[1][3] = < 1, 3-3, 1.2 >; #local A[2][0] = < 1.4, 0.6-3, 0 >; #local A[2][1] = < 1.7, 1-3, 0.5 >; #local A[2][2] = < 1.7, 2-3, 0.5 >; #local A[2][3] = < 1.7, 3-3, 0.5 >; #local A[3][0] = < 2, 1-3, 0 >; #local A[3][1] = < 2, 1-3, 0 >; #local A[3][2] = < 2, 2-3, 0 >; #local A[3][3] = < 2, 3-3, 0 >; //ligação com o corpo da nave #local A[0][3] = (A[0][2]+B[0][1])/2; #local A[1][3] = (A[1][2]+B[1][1])/2; #local A[2][3] = (A[2][2]+B[2][1])/2; #local A[3][3] = (A[3][2]+B[3][1])/2; #local B[0][0] = A[0][3]; #local B[1][0] = A[1][3]; #local B[2][0] = A[2][3]; //frente da nave embaixo #local D = array[4][4]; #local D[0][0] = < 2, 1-3, 0 >; #local D[0][1] = < 2, 1-3, 0 >; #local D[0][2] = < 2, 2-3, 0 >; #local D[0][3] = < 2, 3-3, 0 >; #local D[1][0] = < 1.4, 0.6-3, 0 >; #local D[1][1] = < 1.7, 1-3, -0.3 >; #local D[1][2] = < 1.7, 2-3, -0.3 >; #local D[1][3] = < 1.7, 3-3, -0.3 >; #local D[2][0] = < 0.9, 0.3-3, 0>; #local D[2][1] = < 1, 1-3, -0.8 >; #local D[2][2] = < 1, 2-3, -0.8 >; #local D[2][3] = < 1, 3-3, -0.8 >; #local D[3][0] = < 0, 0-3, 0>; #local D[3][1] = < 0, 1-3, -1 >; #local D[3][2] = < 0, 2-3, -1 >; #local D[3][3] = < 0, 3-3, -1 >; //ligação com a de cima #local A[3][0] = (A[2][0]+D[1][0])/2; #local A[3][1] = (A[2][1]+D[1][1])/2; #local A[3][2] = (A[2][2]+D[1][2])/2; #local A[3][3] = (A[2][3]+D[1][3])/2; #local D[0][0] = A[3][0]; #local D[0][1] = A[3][1]; #local D[0][2] = A[3][2]; #local D[0][3] = A[3][3]; #include "eixos.inc" #include "frontal.inc" #include "camlight.inc" #include "retalho-simples.inc" #declare centro_cena = <0.00, 0.00, 0.00 >; #declare raio_cena = 4; #declare dir_camera = <10.00, -4.00, 1.00>; #declare dist_camera = 5*raio_cena; #declare intens_luz = 1.20; #declare dist_overlay = 0.67*dist_camera; // Agora eh distancia da camera ao overlay. camlight(centro_cena, raio_cena, dir_camera, dist_camera, z, intens_luz) // Aqui está a cena, finalmente: union{ //object{ eixos(3.00) } object{ retalho(B, 0.0, tx_grid, tx_gold)} object{ retalho(E, 0.0, tx_grid, tx_green)} object{ retalho(A, 0.02, tx_grid, tx_window)} object{ retalho(D, 0.02, tx_grid, tx_window2)} }