home *** CD-ROM | disk | FTP | other *** search
/ ANews 3 / AnewsCD3.iso / atari / GRAPHX / POV / 68030.060 / POV31G30 / POVRAY_3.1G / SCENES / ANIMATE / PENTMAP / PENTMAP.POV < prev   
Text File  |  1999-10-30  |  20KB  |  344 lines

  1. // Pentspir.pov  - Spiraling blob animation
  2. // Jeff Bowermaster - Splat! Graphics 12/29/95
  3.  
  4. // NOTE:
  5.  
  6. // Requires a 4x1 aspect (640x160)
  7.  
  8. // Animation:
  9. // povray +ipentmap.pov +opm0.tga +B50 +SF0 +EF300 +KI0.0 +KF1.0 +KFI0 +KFF300 +D0 +KC
  10.  
  11. #declare Wild_Map =
  12. color_map {
  13.    [0.000, 0.021 color rgb <0.010, 0.010, 0.010>
  14.                  color rgb <0.040, 0.010, 0.020>]
  15.    [0.021, 0.067 color rgb <0.040, 0.010, 0.020>
  16.                  color rgb <0.105, 0.080, 0.060>]
  17.    [0.067, 0.117 color rgb <0.105, 0.080, 0.060>
  18.                  color rgb <0.275, 0.220, 0.140>]
  19.    [0.117, 0.167 color rgb <0.275, 0.220, 0.140>
  20.                  color rgb <0.490, 0.155, 0.260>]
  21.    [0.167, 0.230 color rgb <0.490, 0.155, 0.260>
  22.                  color rgb <0.615, 0.060, 0.425>]
  23.    [0.230, 0.305 color rgb <0.615, 0.060, 0.425>
  24.                  color rgb <0.860, 0.140, 0.485>]
  25.    [0.305, 0.385 color rgb <0.860, 0.140, 0.485>
  26.                  color rgb <1.150, 0.325, 0.335>]
  27.    [0.385, 0.469 color rgb <1.150, 0.325, 0.335>
  28.                  color rgb <1.235, 0.560, 0.125>]
  29.    [0.469, 0.548 color rgb <1.235, 0.560, 0.125>
  30.                  color rgb <0.980, 0.665, 0.035>]
  31.    [0.548, 0.623 color rgb <0.980, 0.665, 0.035>
  32.                  color rgb <0.590, 0.550, 0.160>]
  33.    [0.623, 0.703 color rgb <0.590, 0.550, 0.160>
  34.                  color rgb <0.270, 0.320, 0.370>]
  35.    [0.703, 0.787 color rgb <0.270, 0.320, 0.370>
  36.                  color rgb <0.095, 0.165, 0.230>]
  37.    [0.787, 0.891 color rgb <0.095, 0.165, 0.230>
  38.                  color rgb <0.020, 0.145, 0.575>]
  39.    [0.891, 0.950 color rgb <0.020, 0.145, 0.575>
  40.                  color rgb <0.005, 0.140, 0.425>]
  41.    [0.950, 1.000 color rgb <0.005, 0.140, 0.425>
  42.                  color rgb <0.010, 0.010, 0.010>]
  43. }
  44.  
  45. #declare shiny_mess = 
  46.  texture{
  47.    pigment{
  48.     marble
  49.     turbulence 1
  50.     octaves 4
  51.     omega 0.5
  52.     lambda 4
  53.     color_map {Wild_Map }
  54.    }
  55.    finish{phong 0.8 phong_size 200}
  56.  }
  57.  
  58. #include "colors.inc"
  59. #include "textures.inc"
  60.  
  61. // Sphere textures could also be a texture map (not included)
  62. #declare shiny_mess =
  63. texture {
  64.   pigment {
  65.    image_map {
  66.      png "plasma2.png"
  67.      map_type 1
  68.    }
  69.   }
  70.   finish {Shiny }
  71. }
  72.  
  73.  
  74. #declare shiny_yellow = 
  75. texture {
  76.    pigment { rgb <1.2,0.9,0> }
  77.    finish  { Shiny }
  78. }
  79.  
  80. camera {
  81.    location  <0, 0, -6>
  82.    look_at  <0, 0, 0>
  83.    angle 47
  84.    right x*1/4
  85.    right <4,0,0>
  86. }
  87.  
  88. light_source { <-5, 1, -8> colour red 1.0 green 1.0 blue 1.0 }
  89. light_source { < 5, 1, -8> colour red 1.0 green 1.0 blue 1.0 }
  90. light_source { < 0, 5, -2> colour red 1.0 green 1.0 blue 1.0 }
  91.  
  92. // setup the initial spiral
  93.  
  94. #declare move = 0.95;  // static x-distance per blob
  95. #declare px = 0.2;     // semi-random spacing parameter  (offset per blob)
  96. #declare pr = 0.3;     // amount of radial in/out
  97.  
  98. #declare bx = -6.7;    // seed element position
  99. #declare by = 1;
  100. #declare bz = 0;
  101.  
  102. // gaussian multiplier to the pertubation function for the spheres
  103. // dependency on the clock causes the effect to travel from left to right
  104.  
  105. // w is the width of the effect
  106. #declare w = 0.1;
  107.  
  108. #declare  g1 = 1 / exp(((clock - .2) / w) * ((clock - .2) / w));
  109. #declare  g2 = 1 / exp(((clock - .25) / w) * ((clock - .25) / w));
  110. #declare  g3 = 1 / exp(((clock - .3) / w) * ((clock - .3) / w));
  111. #declare  g4 = 1 / exp(((clock - .35) / w) * ((clock - .35) / w));
  112. #declare  g5 = 1 / exp(((clock - .4) / w) * ((clock - .4) / w));
  113. #declare  g6 = 1 / exp(((clock - .45) / w) * ((clock - .45) / w));
  114. #declare  g7 = 1 / exp(((clock - .5) / w) * ((clock - .5) / w));
  115. #declare  g8 = 1 / exp(((clock - .55) / w) * ((clock - .55) / w));
  116. #declare  g9 = 1 / exp(((clock - .6) / w) * ((clock - .6) / w));
  117. #declare g10 = 1 / exp(((clock - .65) / w) * ((clock - .65) / w));
  118. #declare g11 = 1 / exp(((clock - .7) / w) * ((clock - .7) / w));
  119. #declare g12 = 1 / exp(((clock - .75) / w) * ((clock - .75) / w));
  120. #declare g13 = 1 / exp(((clock - .8) / w) * ((clock - .8) / w));
  121.  
  122. // sinusoidally modify the initial height of the seed element
  123. // gosh I could sure go for a loop function in a ray tracer right about now <g>
  124.  
  125. #declare y01 =  g1*pr*sin((clock*5+px*1)*2*pi);
  126. #declare y02 =  g2*pr*sin((clock*5+px*2)*2*pi);
  127. #declare y03 =  g3*pr*sin((clock*5+px*3)*2*pi);
  128. #declare y04 =  g4*pr*sin((clock*5+px*4)*2*pi);
  129. #declare y05 =  g5*pr*sin((clock*5+px*5)*2*pi);
  130. #declare y06 =  g6*pr*sin((clock*5+px*6)*2*pi);
  131. #declare y07 =  g7*pr*sin((clock*5+px*7)*2*pi);
  132. #declare y08 =  g8*pr*sin((clock*5+px*8)*2*pi);
  133. #declare y09 =  g9*pr*sin((clock*5+px*9)*2*pi);
  134. #declare y10 = g10*pr*sin((clock*5+px*10)*2*pi);
  135. #declare y11 = g11*pr*sin((clock*5+px*11)*2*pi);
  136. #declare y12 = g12*pr*sin((clock*5+px*12)*2*pi);
  137. #declare y13 = g13*pr*sin((clock*5+px*13)*2*pi);
  138.  
  139. #declare y14 =  g1*pr*sin((clock*5+px*14)*2*pi);
  140. #declare y15 =  g2*pr*sin((clock*5+px*15)*2*pi);
  141. #declare y16 =  g3*pr*sin((clock*5+px*16)*2*pi);
  142. #declare y17 =  g4*pr*sin((clock*5+px*17)*2*pi);
  143. #declare y18 =  g5*pr*sin((clock*5+px*18)*2*pi);
  144. #declare y19 =  g6*pr*sin((clock*5+px*19)*2*pi);
  145. #declare y20 =  g7*pr*sin((clock*5+px*20)*2*pi);
  146. #declare y21 =  g8*pr*sin((clock*5+px*21)*2*pi);
  147. #declare y22 =  g9*pr*sin((clock*5+px*22)*2*pi);
  148. #declare y23 = g10*pr*sin((clock*5+px*23)*2*pi);
  149. #declare y24 = g11*pr*sin((clock*5+px*24)*2*pi);
  150. #declare y25 = g12*pr*sin((clock*5+px*25)*2*pi);
  151. #declare y26 = g13*pr*sin((clock*5+px*26)*2*pi);
  152.  
  153. #declare y27 =  g1*pr*sin((clock*5+px*27)*2*pi);
  154. #declare y28 =  g2*pr*sin((clock*5+px*28)*2*pi);
  155. #declare y29 =  g3*pr*sin((clock*5+px*29)*2*pi);
  156. #declare y30 =  g4*pr*sin((clock*5+px*30)*2*pi);
  157. #declare y31 =  g5*pr*sin((clock*5+px*31)*2*pi);
  158. #declare y32 =  g6*pr*sin((clock*5+px*32)*2*pi);
  159. #declare y33 =  g7*pr*sin((clock*5+px*33)*2*pi);
  160. #declare y34 =  g8*pr*sin((clock*5+px*34)*2*pi);
  161. #declare y35 =  g9*pr*sin((clock*5+px*35)*2*pi);
  162. #declare y36 = g10*pr*sin((clock*5+px*36)*2*pi);
  163. #declare y37 = g11*pr*sin((clock*5+px*37)*2*pi);
  164. #declare y38 = g12*pr*sin((clock*5+px*38)*2*pi);
  165. #declare y39 = g13*pr*sin((clock*5+px*39)*2*pi);
  166.  
  167. #declare y40 =  g1*pr*sin((clock*5+px*40)*2*pi);
  168. #declare y41 =  g2*pr*sin((clock*5+px*41)*2*pi);
  169. #declare y42 =  g3*pr*sin((clock*5+px*42)*2*pi);
  170. #declare y43 =  g4*pr*sin((clock*5+px*43)*2*pi);
  171. #declare y44 =  g5*pr*sin((clock*5+px*44)*2*pi);
  172. #declare y45 =  g6*pr*sin((clock*5+px*45)*2*pi);
  173. #declare y46 =  g7*pr*sin((clock*5+px*46)*2*pi);
  174. #declare y47 =  g8*pr*sin((clock*5+px*47)*2*pi);
  175. #declare y48 =  g9*pr*sin((clock*5+px*48)*2*pi);
  176. #declare y49 = g10*pr*sin((clock*5+px*49)*2*pi);
  177. #declare y50 = g11*pr*sin((clock*5+px*50)*2*pi);
  178. #declare y51 = g12*pr*sin((clock*5+px*51)*2*pi);
  179. #declare y52 = g13*pr*sin((clock*5+px*52)*2*pi);
  180.  
  181. #declare y53 =  g1*pr*sin((clock*5+px*53)*2*pi);
  182. #declare y54 =  g2*pr*sin((clock*5+px*54)*2*pi);
  183. #declare y55 =  g3*pr*sin((clock*5+px*55)*2*pi);
  184. #declare y56 =  g4*pr*sin((clock*5+px*56)*2*pi);
  185. #declare y57 =  g5*pr*sin((clock*5+px*57)*2*pi);
  186. #declare y58 =  g6*pr*sin((clock*5+px*58)*2*pi);
  187. #declare y59 =  g7*pr*sin((clock*5+px*59)*2*pi);
  188. #declare y60 =  g8*pr*sin((clock*5+px*60)*2*pi);
  189. #declare y61 =  g9*pr*sin((clock*5+px*61)*2*pi);
  190. #declare y62 = g10*pr*sin((clock*5+px*62)*2*pi);
  191. #declare y63 = g11*pr*sin((clock*5+px*63)*2*pi);
  192. #declare y64 = g12*pr*sin((clock*5+px*64)*2*pi);
  193. #declare y65 = g13*pr*sin((clock*5+px*65)*2*pi);
  194.  
  195. #declare s01 = vrotate(<bx,by+y01,bz>,<  0,0,0>) + <move*1, 0,0>;
  196. #declare s02 = vrotate(<bx,by+y02,bz>,< 40,0,0>) + <move*2, 0,0>;
  197. #declare s03 = vrotate(<bx,by+y03,bz>,< 80,0,0>) + <move*3, 0,0>;
  198. #declare s04 = vrotate(<bx,by+y04,bz>,<120,0,0>) + <move*4, 0,0>;
  199. #declare s05 = vrotate(<bx,by+y05,bz>,<160,0,0>) + <move*5, 0,0>;
  200. #declare s06 = vrotate(<bx,by+y06,bz>,<200,0,0>) + <move*6, 0,0>;
  201. #declare s07 = vrotate(<bx,by+y07,bz>,<240,0,0>) + <move*7, 0,0>;
  202. #declare s08 = vrotate(<bx,by+y08,bz>,<280,0,0>) + <move*8, 0,0>;
  203. #declare s09 = vrotate(<bx,by+y09,bz>,<320,0,0>) + <move*9, 0,0>;
  204. #declare s10 = vrotate(<bx,by+y10,bz>,<  0,0,0>) + <move*10,0,0>;
  205. #declare s11 = vrotate(<bx,by+y11,bz>,< 40,0,0>) + <move*11,0,0>;
  206. #declare s12 = vro