Demo effect
Encyclopedia
Demo effects are computer-based real-time visual effects
found in demos
created by the demoscene
.
The main purpose of demo effects in demos is to show off the skills of the programmer. Because of this, demo coders have often attempted to create new effects whose technical basis cannot be easily figured out by fellow programmers.
Sometimes, particularly in the case of severely limited platforms such as the Commodore 64
, a demo effect may make the target machine do things that are supposedly beyond its capabilities. The ability to creatively overcome major technical limitations is greatly appreciated among demosceners.
Modern demos are not as focused on effects as the demos of 1980s and 1990s. Effects are rarely stand-alone content elements anymore, and their role in programmer showcase has diminished, particularly in PC
demos. As for today, PC demosceners are more likely to demonstrate their programming skills with procedural content generation
or 3D engine features than with superior visual effects.
The demoscene took off on home computers such as the Commodore 64
and the Amiga
, which had relatively advanced and very "hackable" custom chips and CPUs. Before the widespread use of advanced computer aided design for integrated circuits, chips were designed by hand and so often had many undocumented or unintended features. A lack of standardisation also meant that hardware design tended to reflect the designers own ideas and creative flair. For this reason, most "old school" demo effects were based on the creative exploitation of the features of particular hardware. A lot of effort was put into the reverse-engineering of the hardware in order to find undocumented possibilities usable for new effects.
The IBM PC
compatibles of the 1990s, however, lacked many of the special features typical for the home computers, instead using standard parts. This was compensated for with a greater general-purpose computing power. The possibility of advanced hardware trickery was also limited by the great variability of PC hardware. For these reasons, the PC democoders of the DOS
era preferred to focus on pixel-level software rendering algorithms.
Democoders have often looked for challenge and respect by "porting" effects from one platform to another. For example, during the "golden age" of the Amiga demos, many well-known Amiga effects were remade with Atari ST
, Commodore 64 and PC, some of which were considered inferior in the key features required in the effects in question. Since the mid-1990s, when the PC had become a major platform, demos for the Amiga and the C-64 started to feature PC-like "pixel effects" as well.
s is a program called Bouncing Ball on the Whirlwind computer
in the early 1950s. Another famous display hack, munching square
s, was originally created on the PDP-1
in ca. 1962.
) CPUs.
s were typical in the mid and late 1990s and were usually first implemented on the PC or Falcon030. They became popular as systems with pixel-addressable high speed video memory and faster processors (to allow for more demanding real-time calculations) became common.
Some of these effects were later ported to planar
pixel machines such as the Amiga
, without relying on chunky to planar conversion. For example, the group Sanity implemented a rotozoomer using a combination of pre-rendered planar bitmaps and copper effects.
has been featured in demos since the late 1980s. Nowadays, a general-purpose 3D engine is an integral part of most new demos.
In the late 1980s and early 1990s, rotating 3D objects were considered effects in their own right due the difficulty of calculating and rendering them. In particular, most systems did not have a floating point unit. Rather than general-purpose 3D algorithms, democoders often used special-purpose tricks highly optimized for the rotation and rendering of a particular object such as a cube
or a sphere
. Since even drawing dots, lines or filled polygons was a difficult task in itself competition often revolved around simply optimising the drawing routines while using pre-calculated maths.
To a casual viewer, many demo effects look like something attainable by a general-purpose 3D engine. However, classic effects with an apparent 3D look often have no real-time 3D calculation whatsoever. For example, static screen-to-texture look-up tables can be used with symmetrical 3D objects that rotate around their axis of symmetry.
Before the advent of mass-marketed 3D acceleration hardware, democoders often focused on lighting and shading techniques in software 3D engines, including Gouraud shading
, Phong shading
, texture mapping
, bump mapping
, environment mapping, radiosity
and even real-time ray tracing.
General-purpose 3D engines are very seldom called "effects", although the rendered scenes often contain something that can be regarded as such.
Visual effects
Visual effects are the various processes by which imagery is created and/or manipulated outside the context of a live action shoot. Visual effects involve the integration of live-action footage and generated imagery to create environments which look realistic, but would be dangerous, costly, or...
found in demos
Demo (computer programming)
A demo is a non-interactive multimedia presentation made within the computer subculture known as the demoscene. Demogroups create demos to demonstrate their abilities in programming, music, drawing, and 3D modeling...
created by the demoscene
Demoscene
The demoscene is a computer art subculture that specializes in producing demos, which are non-interactive audio-visual presentations that run in real-time on a computer...
.
The main purpose of demo effects in demos is to show off the skills of the programmer. Because of this, demo coders have often attempted to create new effects whose technical basis cannot be easily figured out by fellow programmers.
Sometimes, particularly in the case of severely limited platforms such as the Commodore 64
Commodore 64
The Commodore 64 is an 8-bit home computer introduced by Commodore International in January 1982.Volume production started in the spring of 1982, with machines being released on to the market in August at a price of US$595...
, a demo effect may make the target machine do things that are supposedly beyond its capabilities. The ability to creatively overcome major technical limitations is greatly appreciated among demosceners.
Modern demos are not as focused on effects as the demos of 1980s and 1990s. Effects are rarely stand-alone content elements anymore, and their role in programmer showcase has diminished, particularly in PC
IBM PC
The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform. It is IBM model number 5150, and was introduced on August 12, 1981...
demos. As for today, PC demosceners are more likely to demonstrate their programming skills with procedural content generation
Procedural generation
Procedural generation is a widely used term in the production of media; it refers to content generated algorithmically rather than manually. Often, this means creating content on the fly rather than prior to distribution...
or 3D engine features than with superior visual effects.
Hardware considerations
There are demos written for many different devices that vary considerably in their graphical features and data processing capabilities. The variability in hardware also reflects in types of effects invented for each platform as well as in the methods used in the implementation.The demoscene took off on home computers such as the Commodore 64
Commodore 64
The Commodore 64 is an 8-bit home computer introduced by Commodore International in January 1982.Volume production started in the spring of 1982, with machines being released on to the market in August at a price of US$595...
and the Amiga
Amiga
The Amiga is a family of personal computers that was sold by Commodore in the 1980s and 1990s. The first model was launched in 1985 as a high-end home computer and became popular for its graphical, audio and multi-tasking abilities...
, which had relatively advanced and very "hackable" custom chips and CPUs. Before the widespread use of advanced computer aided design for integrated circuits, chips were designed by hand and so often had many undocumented or unintended features. A lack of standardisation also meant that hardware design tended to reflect the designers own ideas and creative flair. For this reason, most "old school" demo effects were based on the creative exploitation of the features of particular hardware. A lot of effort was put into the reverse-engineering of the hardware in order to find undocumented possibilities usable for new effects.
The IBM PC
IBM PC
The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform. It is IBM model number 5150, and was introduced on August 12, 1981...
compatibles of the 1990s, however, lacked many of the special features typical for the home computers, instead using standard parts. This was compensated for with a greater general-purpose computing power. The possibility of advanced hardware trickery was also limited by the great variability of PC hardware. For these reasons, the PC democoders of the DOS
DOS
DOS, short for "Disk Operating System", is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.Related...
era preferred to focus on pixel-level software rendering algorithms.
Democoders have often looked for challenge and respect by "porting" effects from one platform to another. For example, during the "golden age" of the Amiga demos, many well-known Amiga effects were remade with Atari ST
Atari ST
The Atari ST is a home/personal computer that was released by Atari Corporation in 1985 and commercially available from that summer into the early 1990s. The "ST" officially stands for "Sixteen/Thirty-two", which referred to the Motorola 68000's 16-bit external bus and 32-bit internals...
, Commodore 64 and PC, some of which were considered inferior in the key features required in the effects in question. Since the mid-1990s, when the PC had become a major platform, demos for the Amiga and the C-64 started to feature PC-like "pixel effects" as well.
Early history
The earliest computer programs resembling demo effects predate the demoscene for several decades. Perhaps the earliest example of these so-called display hackDisplay hack
A display hack is a computer program with similar purpose to a kaleidoscope: to make pretty pictures . Famous display hacks include munching squares and smoking clover. Some display hacks can be also implemented by creating text files which contain numerous escape sequences for a text terminal to...
s is a program called Bouncing Ball on the Whirlwind computer
Whirlwind (computer)
The Whirlwind computer was developed at the Massachusetts Institute of Technology. It is the first computer that operated in real time, used video displays for output, and the first that was not simply an electronic replacement of older mechanical systems...
in the early 1950s. Another famous display hack, munching square
Munching square
The Munching Square is a display hack dating back to the PDP-1 , which employs a trivial computation to produce an impressive display of moving and growing squares that devour the screen...
s, was originally created on the PDP-1
PDP-1
The PDP-1 was the first computer in Digital Equipment Corporation's PDP series and was first produced in 1960. It is famous for being the computer most important in the creation of hacker culture at MIT, BBN and elsewhere...
in ca. 1962.
"Old school" effects
These effects were typical in the 1980s and the early 1990s and were first implemented on either the Commodore 64, Atari ST or the Amiga. They often relied on the systems custom hardware or were considered difficult because of it. For example, 3D objects rendered in dots are somewhat tricky on systems without byte-per-pixel displays or limited video memory bandwidth, or systems with slow and/or limited (e.g. 8 bit, no FPUFPU
FPU may stand for:* Federation of Progressive Unions, a trade union center in Mauritius* Federation of Trade Unions of Ukraine* Fishermen's Protective Union, a left populist political party and later service organization in the former Dominion of Newfoundland from 1908 to the 1960s* Floating-point...
) CPUs.
- Raster barRaster barThe raster bar is an effect used in demos that displays animated horizontal bars of colour that extend into the overscan area of the display...
s, also called copper bars on the Amiga. - Scrollers of various kinds.
- Moving spritesSprite (computer graphics)In computer graphics, a sprite is a two-dimensional image or animation that is integrated into a larger scene...
, with the competition usually focused on the number of visible sprites per frame. - Starfields, such as parallax-scrolling and perspective starfields.
- Smooth horizontal waving of graphics images in a per-scanline basis
- Shadebobs
- Infinite bobs
- Plasma effectPlasma effectThe 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....
- Kefrens bars
- Moire patternMoiré patternIn physics, a moiré pattern is an interference pattern created, for example, when two grids are overlaid at an angle, or when they have slightly different mesh sizes.- Etymology :...
s, particularly circles - Text zoomers
- Simple rotating 3D objects rendered in dots, lines or filled polygons.
- Spline effect
- Vector graphicsVector graphicsVector graphics is the use of geometrical primitives such as points, lines, curves, and shapes or polygon, which are all based on mathematical expressions, to represent images in computer graphics...
- Glenz, partially see-through models with a "diamond-like" look. Named by Photon from the Swedish word "Gläns" (glisten or glitter)
- Blenk, shiny metallic aluminum-like models, from Swedish "Blänk" (shiny)
- Rubber, Twisting and/or elastic models. Also sometimes referred to as Gel
Chunky-pixel effects
Effects based on software rendering into chunky-pixel framebufferFramebuffer
A framebuffer is a video output device that drives a video display from a memory buffer containing a complete frame of data.The information in the memory buffer typically consists of color values for every pixel on the screen...
s were typical in the mid and late 1990s and were usually first implemented on the PC or Falcon030. They became popular as systems with pixel-addressable high speed video memory and faster processors (to allow for more demanding real-time calculations) became common.
- Effects based on static screen-to-texture lookup tables
- Texture-mapped tunnels and other objects rotating around their axis of symmetry
- Wobblers, rotators and other similar effects for 2D images
- Objects that reflect or refract underlying bitmap images
- Texture-mapped tunnel with freely moving camera, typically based on realtime raytracing
- Rotozoomer
- MandelbrotMandelbrot setThe Mandelbrot set is a particular mathematical set of points, whose boundary generates a distinctive and easily recognisable two-dimensional fractal shape...
zoomer - Fire effect and other effects based on 2D filters and feedback
- Heightfield landscape (often called "voxelVoxelA voxel is a volume element, representing a value on a regular grid in three dimensional space. This is analogous to a pixel, which represents 2D image data in a bitmap...
landscape") - 2D bump mappingBump mappingBump mapping is a technique in computer graphics for simulating bumps and wrinkles on the surface of an object. This is achieved by perturbing the surface normals of the object and using the perturbed normal during lighting calculations. The result is an apparently bumpy surface rather than a...
- MetaballsMetaballsMetaballs are, in computer graphics, organic-looking n-dimensional objects. The technique for rendering metaballs was invented by Jim Blinn in the early 1980s....
Some of these effects were later ported to planar
Planar
In computer graphics, planar is the method of representing pixel colours with several bitplanes of RAM. Each bit in a bitplane is related to one pixel on the screen...
pixel machines such as the Amiga
Amiga
The Amiga is a family of personal computers that was sold by Commodore in the 1980s and 1990s. The first model was launched in 1985 as a high-end home computer and became popular for its graphical, audio and multi-tasking abilities...
, without relying on chunky to planar conversion. For example, the group Sanity implemented a rotozoomer using a combination of pre-rendered planar bitmaps and copper effects.
3D rendering
3D computer graphics3D computer graphics
3D computer graphics are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images...
has been featured in demos since the late 1980s. Nowadays, a general-purpose 3D engine is an integral part of most new demos.
In the late 1980s and early 1990s, rotating 3D objects were considered effects in their own right due the difficulty of calculating and rendering them. In particular, most systems did not have a floating point unit. Rather than general-purpose 3D algorithms, democoders often used special-purpose tricks highly optimized for the rotation and rendering of a particular object such as a cube
Cube
In geometry, a cube is a three-dimensional solid object bounded by six square faces, facets or sides, with three meeting at each vertex. The cube can also be called a regular hexahedron and is one of the five Platonic solids. It is a special kind of square prism, of rectangular parallelepiped and...
or a sphere
Sphere
A sphere is a perfectly round geometrical object in three-dimensional space, such as the shape of a round ball. Like a circle in two dimensions, a perfect sphere is completely symmetrical around its center, with all points on the surface lying the same distance r from the center point...
. Since even drawing dots, lines or filled polygons was a difficult task in itself competition often revolved around simply optimising the drawing routines while using pre-calculated maths.
To a casual viewer, many demo effects look like something attainable by a general-purpose 3D engine. However, classic effects with an apparent 3D look often have no real-time 3D calculation whatsoever. For example, static screen-to-texture look-up tables can be used with symmetrical 3D objects that rotate around their axis of symmetry.
Before the advent of mass-marketed 3D acceleration hardware, democoders often focused on lighting and shading techniques in software 3D engines, including Gouraud shading
Gouraud shading
Gouraud shading, named after Henri Gouraud, is an interpolation method used in computer graphics to produce continuous shading of surfaces represented by polygon meshes...
, Phong shading
Phong shading
Phong shading refers to an interpolation technique for surface shading in 3D computer graphics. It is also called Phong interpolation or normal-vector interpolation shading. Specifically, it interpolates surface normals across rasterized polygons and computes pixel colors based on the interpolated...
, texture mapping
Texture mapping
Texture mapping is a method for adding detail, surface texture , or color to a computer-generated graphic or 3D model. Its application to 3D graphics was pioneered by Dr Edwin Catmull in his Ph.D. thesis of 1974.-Texture mapping:...
, bump mapping
Bump mapping
Bump mapping is a technique in computer graphics for simulating bumps and wrinkles on the surface of an object. This is achieved by perturbing the surface normals of the object and using the perturbed normal during lighting calculations. The result is an apparently bumpy surface rather than a...
, environment mapping, radiosity
Radiosity
Radiosity is a global illumination algorithm used in 3D computer graphics rendering. Radiosity is an application of the finite element method to solving the rendering equation for scenes with purely diffuse surfaces...
and even real-time ray tracing.
General-purpose 3D engines are very seldom called "effects", although the rendered scenes often contain something that can be regarded as such.