// Entry code: qwoaqw // Name : Joel Yliluoma // Frame rate: 15 /* Povray scc5 contest entry * Copyright (C) 1992,2007 Joel Yliluoma - http://iki.fi/bisqwit/ * Title: Time machine */ /* A macro that sets generic reflective pigment settings with varied brightness. * Contains media, reflection and whatnot. Parameters control which features * are being used. Pigment can be varied in brightness and tone. */ #macro P(n,e,q) pigment { rgbt<1,4,5,1>/5*n } finish {diffuse q/2 reflection .1*q } hollow interior { media{emission e }} #end /* A macro that creates a cluster of N cubes * where each successive one is * translated by B, and then rotated by C*n. * Loop is achieved through recursion. * * The original idea was to create crystal clusters * with this -- like those you could find in a mine. * But it didn't end up looking like that... */ #macro Y(n,N,B,C) #if(n; /* Used for rotations */ P(.2,0,1) normal { granite 5 scale 39 } rotate #local c=clock*2*pi; y*c*9 /* It used to say here: y*c*58.3. c*58.3 is equivalent to clock*360 , but shorter. However, because we've only got 100 frames, a full rotation of the bounding sphere would be quite dizzying, so I'll sacrifice the loopability here and use a calmer number. I could also try sin(), but I don't like the rocking motion of the background... */ } /* The center object ... the reactor. Consists of 71 cubes. */ merge{Y(1,72,x*5,r+sin(c)*z)P(3.5,.2,4)} light_source{6,1} /* Put the center object into a sphere * that blurs the light a bit to simulate * a HDRI light leaking effect */ sphere{0,8 // P() gives us "hollow" with little cost in letters P(1,.01,0) pigment{rgbt 1} } union{ // The orbiting objects. Also a cluster of cubes, more spread out. Y(2,79,r*.7,r*11) scale .7 // This gives the bits a nice red tint and glare, like rose petals. // x+y is of course equal to <1,1,0> and x/5 is <.2,0,0>, but this // is all basic stuff for scc audiences by now. P(x+y,x/5,4) } /* The camera... defined because everything else is around the origo. * It is not shorter to translate everything than to define the camera, * so we use the camera.. this allows to potentially also set effects * such as focal blur. */ camera{location-z*25 //focal_point-5*z aperture 1.3 blur_samples 3 //variance 1e-5 }