Plasma effect

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found.

Lua error in package.lua at line 80: module 'strict' not found.


The plasma effect is a computer-based visual effect animated in real-time. It uses cycles of changing colours warped in various ways to give an illusion of liquid, organic movement.

File:Plasma effect.jpg
A still screenshot of a typical plasma effect.
File:-PLASMA-ColorCycling.Gif
Animated color cycling feature as in Fractint

Plasma was probably invented by demo coders for use in their demos where the effect was heavily used, especially in the early 1990s. The effect was particularly common on the Commodore Amiga where it could be implemented very efficiently by using the features of the proprietary display hardware. Plasma can also be implemented easily in software rendering by using sinus tables and pseudocolor palettes, and it has also been the first true demo effect for many beginning PC democoders.

The fractal software Fractint also incorporates an algorithm known as "plasma", which, when combined with the color cycling feature of the software, can provide a result which resembles a typical plasma effect used in demos. The technical basis, however, is completely different, and a color cycling plasma is somewhat less dynamic than a demo plasma.

Synopsis

File:AAlib-gradient.png
A plasma effect rendered in ANSI art by the AAlib library.

As there are many "hacked" approaches for implementing a plasma effect, this outline of an algorithm will just describe the theoretical basis for the effect. In order to achieve a sufficiently fast and good-looking real-time implementation (especially on the limited hardware available at the time this effect was at the height of its popularity in the 1990s), one would often do "non-correct" approximations to this algorithm. This, however, can often be done without noticeable visual differences.

This algorithm is given in two dimensions, but could easily be adopted to any number of dimensions for any number of color channels.

Let f(x, y) be a multi-frequency noise function of two 2 variables (e.g., a perlin noise function). Let each color component c at the pixel (x, y) be a linear function of the expression \sin(f(x,y) \cdot \omega_c).

See also

Plasma fractal is a fractal to which the plasma effect can be applied with nice results.

External links