Demo effect

Last updated

The demo effect is a name for computer-based real-time visual effects found in demos created by the demoscene.

Contents

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 the 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.

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 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.

Early history

The earliest computer programs resembling demo effects predate the demoscene for several decades. Perhaps the earliest example of these so-called display hacks is a program called Bouncing Ball on the Whirlwind computer in the early 1950s. Another famous display hack, munching squares , was originally created on the PDP-1 in ca. 1962.

"Old school" effects

A still screenshot of a typical plasma effect. Plasma effect.jpg
A still screenshot of a typical plasma effect.

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 FPU) CPUs.

Chunky-pixel effects

Effects based on software rendering into chunky-pixel framebuffers 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.

3D rendering

3D computer graphics 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 to 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.

See also

Related Research Articles

<span class="mw-page-title-main">Rendering (computer graphics)</span> Process of generating an image from a model

Rendering or image synthesis is the process of generating a photorealistic or non-photorealistic image from a 2D or 3D model by means of a computer program. The resulting image is referred to as the render. Multiple models can be defined in a scene file containing objects in a strictly defined language or data structure. The scene file contains geometry, viewpoint, texture, lighting, and shading information describing the virtual scene. The data contained in the scene file is then passed to a rendering program to be processed and output to a digital image or raster graphics image file. The term "rendering" is analogous to the concept of an artist's impression of a scene. The term "rendering" is also used to describe the process of calculating effects in a video editing program to produce the final video output.

<span class="mw-page-title-main">Amiga demos</span>

Amiga demos are demos created for the Amiga home computer.

<span class="mw-page-title-main">Scanline rendering</span> 3D computer graphics image rendering method

Scanline rendering is an algorithm for visible surface determination, in 3D computer graphics, that works on a row-by-row basis rather than a polygon-by-polygon or pixel-by-pixel basis. All of the polygons to be rendered are first sorted by the top y coordinate at which they first appear, then each row or scan line of the image is computed using the intersection of a scanline with the polygons on the front of the sorted list, while the sorted list is updated to discard no-longer-visible polygons as the active scan line is advanced down the picture.

<span class="mw-page-title-main">Crack intro</span>

A crack intro, also known as a cracktro, loader, or just intro, is a small introduction sequence added to cracked software. It aims to inform the user which "cracking crew" or individual cracker removed the software's copy protection and distributed the crack.

<span class="mw-page-title-main">Texture mapping</span> Method of defining surface detail on a computer-generated graphic or 3D model

Texture mapping is a method for mapping a texture on a computer-generated graphic. Texture here can be high frequency detail, surface texture, or color.

<span class="mw-page-title-main">Demogroup</span> Group of demoscene creators

Demogroups are teams of demosceners, who make computer based audio-visual works of art known as demos. Demogroups form a subculture collectively known as the demoscene.

<span class="mw-page-title-main">Demoscene</span> Computer art subculture

The demoscene is an international computer art subculture focused on producing demos: self-contained, sometimes extremely small, computer programs that produce audiovisual presentations. The purpose of a demo is to show off programming, visual art, and musical skills. Demos and other demoscene productions are shared at festivals known as demoparties, voted on by those who attend and released online.

<span class="mw-page-title-main">Assembly (demoparty)</span>

The Assembly demoparty is a demoscene and gaming event in Finland. It is the biggest demoscene party. The main organizers of the event are Pekka Aakko and Jussi Laakkonen. The Summer event takes place every year between late July and early August, and lasts three to four days, and the Winter event is held in January or February. Edition 2020 was online. The most recent Assembly was held from 1 to 3 April 2022 at Messukeskus in Helsinki.

<span class="mw-page-title-main">Shader</span> Type of program in a graphical processing unit (GPU)

In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene—a process known as shading. Shaders have evolved to perform a variety of specialized functions in computer graphics special effects and video post-processing, as well as general-purpose computing on graphics processing units.

A first-person shooter engine is a video game engine specialized for simulating 3D environments for use in a first-person shooter video game. First-person refers to the view where the players see the world from the eyes of their characters. Shooter refers to games which revolve primarily around wielding firearms and killing other entities in the game world, either non-player characters or other players.

<span class="mw-page-title-main">Hold-And-Modify</span> Display mode used in Commodore Amiga computers

Hold-And-Modify, usually abbreviated as HAM, is a display mode of the Commodore Amiga computer. It uses a highly unusual technique to express the color of pixels, allowing many more colors to appear on screen than would otherwise be possible. HAM mode was commonly used to display digitized photographs or video frames, bitmap art and occasionally animation. At the time of the Amiga's launch in 1985, this near-photorealistic display was unprecedented for a home computer and it was widely used to demonstrate the Amiga's graphical capability. However, HAM has significant technical limitations which prevent it from being used as a general purpose display mode.

<span class="mw-page-title-main">Real-time computer graphics</span> Sub-field of computer graphics

Real-time computer graphics or real-time rendering is the sub-field of computer graphics focused on producing and analyzing images in real time. The term can refer to anything from rendering an application's graphical user interface (GUI) to real-time image analysis, but is most often used in reference to interactive 3D computer graphics, typically using a graphics processing unit (GPU). One example of this concept is a video game that rapidly renders changing 3D environments to produce an illusion of motion.

<span class="mw-page-title-main">Software rendering</span>

Software rendering is the process of generating an image from a model by means of computer software. In the context of computer graphics rendering, software rendering refers to a rendering process that is not dependent upon graphics hardware ASICs, such as a graphics card. The rendering takes place entirely in the CPU. Rendering everything with the (general-purpose) CPU has the main advantage that it is not restricted to the (limited) capabilities of graphics hardware, but the disadvantage is that more transistors are needed to obtain the same speed.

In computer graphics, per-pixel lighting refers to any technique for lighting an image or scene that calculates illumination for each pixel on a rendered image. This is in contrast to other popular methods of lighting such as vertex lighting, which calculates illumination at each vertex of a 3D model and then interpolates the resulting values over the model's faces to calculate the final per-pixel color values.

<span class="mw-page-title-main">3D rendering</span> Process of converting 3D scenes into 2D images

3D rendering is the 3D computer graphics process of converting 3D models into 2D images on a computer. 3D renders may include photorealistic effects or non-photorealistic styles.

In computer graphics, a texture mapping unit (TMU) is a component in modern graphics processing units (GPUs). They are able to rotate, resize, and distort a bitmap image to be placed onto an arbitrary plane of a given 3D model as a texture, in a process called texture mapping. In modern graphics cards it is implemented as a discrete stage in a graphics pipeline, whereas when first introduced it was implemented as a separate processor, e.g. as seen on the Voodoo2 graphics card.

<span class="mw-page-title-main">3D computer graphics</span> Graphics that use a three-dimensional representation of geometric data

3D computer graphics, sometimes called CGI, 3-D-CGI or three-dimensional 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 digital images, usually 2D images but sometimes 3D images. The resulting images may be stored for viewing later or displayed in real time.

Hombre is a RISC chipset for the Amiga, designed by Commodore, which was intended as the basis of a range of Amiga personal computers and multimedia products, including a successor to the Amiga 1200, a next generation game machine called CD64 and a 3D accelerator PCI card. Hombre was canceled along with the bankruptcy of Commodore International.

<span class="mw-page-title-main">Computer graphics</span> Graphics created using computers

Computer graphics deals with generating images and art with the aid of computers. Today, computer graphics is a core technology in digital photography, film, video games, digital art, cell phone and computer displays, and many specialized applications. A great deal of specialized hardware and software has been developed, with the displays of most devices being driven by computer graphics hardware. It is a vast and recently developed area of computer science. The phrase was coined in 1960 by computer graphics researchers Verne Hudson and William Fetter of Boeing. It is often abbreviated as CG, or typically in the context of film as computer generated imagery (CGI). The non-artistic aspects of computer graphics are the subject of computer science research.

This is a glossary of terms relating to computer graphics.

References

  1. "Megademo 8 by Kefrens".
  2. "English Amiga Board - View Single Post - Looking for some Glenz vector ani gifs".