|
|||||||||
Fungi |
|||||||||
|
Description Fungi is an animated attractor renderer. Inspired by, and in tribute to, the "Spore" work of (the late) "Dr." Richard Baily.
Granted, right now these images are only vaguely reminiscent of Spore, but I thought they were interesting enough to post anyway. Applets Here's the first version and several variants... A nice, fast CPU is strongly recommended. Algorithm A number of control points are iterated through a set of functions. At each step of iteration the position of the control point is plotted. The "Z" value of the equation is then incremented each frame to produce the animation. In this manner each frame of the animation is like a "slice" through a larger volume. In the applet above, the particular functions used are only "2.5D" not 3D. That is, the z value is used as part of the x and y equations, but z itself is not evaluated with similar equations. (as would be done with a 3-D Iterated Function System, for example) The renderer itself is the same as used in the Scrawl applet -- see that page for further information on the sub-pixel anti-aliasing buffer. Note: The "quality" of each frame of animation is directly related to how many control points and iterations are specified. The applets above use what I'd consider the bare minimum number in order to reduce calculations and preserve animation frame rate. The samples below were rendered at a little better quality. Samples Also see the Fungi Gallery for higher quality images of a variety of different attractors rendered with the "real" Fungi renderer. Further Work This sort of system lends itself to all sorts of exploration. There are zillions of possible images given the existing function, but obviously there are a wide variety of suitable functions to play with, each with its own wide variety of output. Mapping hue, saturation and/or brightness by velocity, change in velocity, direction, change in direction, et cetera, or by assigning particular color values to each individual control point, allows for colored images to be generated. Gamma-correcting the intensity histogram (that is, how many times a control point lands on any given pixel) is a useful addition. What tends to happen with attractors is that certain points on the attractor are plotted far more frequently than others, so there is a non-linear scattering of intensity values. By applying some fractional exponent to these intensity values, and then using that to adjust the screen output accordingly, more of the fine details of the attractor become visible. (the desirability of this step depends to a large degree on the density patterns of the particular attractor) Render 3-D particles. Instead of slicing a 2D plane out of a 2.5D or 3D volume and incrementing z each frame, project onto the 2D screen a 3D volume that is clipped out of a larger 3.5D or 4D hyper-volume and increment w each frame. This is what currently occupies my time while exploring this system.
|
|||||||||
|
|||||||||
© 2006 Dave Bollinger | |||||||||