// Last edited on 2017-05-07 20:30:27 by stolfilocal // Processed by remove-cam-lights background{ color rgb < 1.00, 0.60, 0.85 > } #declare tx_plastico = texture{ pigment{ color rgb < 0.11, 0.80, 1.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_cinza = texture{ pigment{ color rgb < 0.75, 0.75, 0.75 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_xadrez = texture{ pigment{ checker color rgb < 0.10, 0.32, 0.60 >, color rgb < 1.00, 0.97, 0.90 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } #declare raio = 0.500; #declare Ra = 0.750; #macro interpola_1(tt,tt0,vv0,tt1,vv1) #local c = ( (tt-tt0)/(tt1-tt0) ); (vv0 + c*(vv1-vv0)) #end #macro gera_segmento_1(m,p0,r0,p1,r1) union { #declare i = 0; #while (i<(m+1)) #declare p = interpola_1(i,0,p0,m,p1); #declare r = interpola_1(i,0,r0,m,r1); sphere{ p, r } #declare i = i + 1; #end } #end #macro interpola_3(tt,tt0,tt1,A,B,C,D) #local AB = interpola_1(tt,tt0,A,tt1,B); #local BC = interpola_1(tt,tt0,B,tt1,C); #local CD = interpola_1(tt,tt0,C,tt1,D); #local ABC = interpola_1(tt,tt0,AB,tt1,BC); #local BCD = interpola_1(tt,tt0,BC,tt1,CD); #local ABCD = interpola_1(tt,tt0,ABC,tt1,BCD); ABCD #end #macro gera_segmento_3(m,p0,r0,p1,r1,p2,r2,p3,r3) union { #declare i = 0; #while (i<(m+1)) #declare p = interpola_3(i,0,m,p0,p1,p2,p3); #declare r = interpola_3(i,0,m,r0,r1,r2,r3); sphere{ p, r } #declare i = i + 1; #end } #end #macro define_tentaculo_3(semente,n,PA,RA,PB,RB,PC,RC,PD,RD) #declare roleta = seed(semente); #declare i = 0; #while (i < (n-1)) #declare PD[i] = PA[i+1] = (PC[i]+PB[i+1])/2; #declare i = i+1; #end #declare i = 0; #while (i < n) PB[i] = <>; RB[i] = 0.5*rand(roleta); #declare i = i+1; #end #end #macro gera_tentaculo_3(m,n,PA,RA,PB,RB,PC,RC,PD,RD) object { gera_segmento_3(m,PA,RA,PB,RB,PC,RC,PD,RD) } #end #macro gera_monstro(m,n) union { cylinder{ <0,0,0>, <0,0,5>, 1.5 } #declare i = 0; #while (i, <+20,+20,0> } #include "eixos.inc" union{ #declare p0 = <0,0,1>; #declare p1 = <0,0,9>; #declare p2 = <0,3,3>; #declare p3 = <0,-3,6>; // object { eixos(7.00) } object {chao texture{tx_xadrez}} object { gera_segmento_3(50,p0,0.5,p2,2,p3,1,p1,1) texture{tx_fosca}} } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 5.00 >; #declare raio_cena = 8.0; #declare dir_camera = < 14.00, -7.00, 4.00 >; #declare dist_camera = 5*raio_cena; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)