Jump to content

Computer animation

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by DaveGorman (talk | contribs) at 04:44, 1 October 2004 (Detailed examples and pseudocode). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Computer animation is the art of creating moving images via the use of computers. It is a subfield of computer graphics and animation. Increasingly it is created by means of 3D computer graphics, though 2D computer graphics are still widely used. Sometimes the target of the animation is the computer itself, sometimes the target is another medium, such as film.

To create the illusion of movement, an image is displayed on the computer screen then quickly replaced by a new image that is similar to the previous image, but shifted slightly. This technique is identical to how the illusion of movement is achieved with television and motion pictures.

A simple example

Computer animation example

The screen is blanked to a background color, such as black. Then a filled red circle is drawn in the center of the screen. Next the screen is blanked, but the red circle is drawn slightly to the right of its original position. This process is repeated, each time moving the circle a bit to the right. If this process is repeated fast enough the red circle will appear to move smoothly to the right. This basic procedure is used for all moving pictures in films and television.

Explanation

To trick the eye and brain into thinking they are seeing a smoothly moving object the pictures must be drawn at about 24 frames per second (FPS), or faster (a frame is one complete image). With rates above 70 FPS, no improvement in realism or smoothness is perceivable due to the way the eye and brain process images. At rates below 24 FPS, most people can detect jerkiness associated with the drawing of new images which detracts from the illusion of realistic movement. Conventional hand-drawn cartoon animation often uses 12 FPS in order to save on the number of drawings needed, but this is usually accepted because of the stylized nature of cartoons. Because it produces more realistic imagery computer animation demands higher frame rates to reinforce this realism.

The reason no jerkiness is seen at higher speeds is due to “persistence of vision.” From moment to moment, the eye and brain working together actually store whatever you look at for a fraction of a second, and automatically "smooth out" minor jumps. Movie film seen in a theater runs at 24 FPS, which is sufficient to create this illusion of continuous movement.

Technical details

When an image is rendered to the screen, it is normally rendered to something called a back buffer. There the computer can draw the image, making any necessary changes to it before it is done. While the computer is doing this, the screen is showing the contents of what is called the primary or active buffer.

When the image is completed, the computer tells the screen to draw from the back buffer. This can be done in one of two ways: the contents of the back buffer can be copied to the primary buffer (or active buffer—the buffer which is currently being shown) or the computer can switch where it is drawing from and make the back buffer the new primary buffer. In this case, the primary buffer becomes the back buffer. This process is usually called double buffering or, informally, "flipping," because the computer is flipping its use of primary and back buffers.

This switching should be carried out when it is imperceptible to the user. Therefore it needs to take place during what is called the "v-sync" or vertical retrace. The v-sync, in CRTs, takes place when the electron guns reach the bottom right of the screen and need to reposition themselves at the top left of the screen. This happens very quickly and the image the guns had just projected remain on the screen as they are moving back to their starting position. While the guns are repositioning themselves, the computer has enough time to flip buffers and the new image will be rendered on the screen on the next pass of the guns. The new image will continued to be displayed until the buffers are flipped once more.

When the computer fails to wait for the v-sync, a condition called sprite breakup or image breakup is perceptible. This is highly undesirable and should always be avoided when possible to maintain the illusion of movement.

Detailed examples and pseudocode

In 2D computer animation, moving objects are often referred to as “sprites.” A sprite is an image that has a location associated with it. The location of the sprite is changed slightly each fame then displayed to make the sprite appear to move. The following pseudocode makes a sprite move from left to right:

Template:Wikicode

 var int x := 0, y := screenHeight ÷ 2;
 while x < screenWidth
     drawBackground()
     drawSpriteAtXY(x, y)  // draw on top of the background
     x := x + 5  // move to the left

Modern (2001) computer animation uses different techniques to produce animations. Most frequently, sophisticated mathematics is used to manipulate complex three dimensional polygons, apply “textures”, lighting and other effects to the polygons and finally rendering the complete image. A sophisticated graphical user interface may be used to create the animation and arrange its choreography. Another technique called constructive solid geometry defines objects by conducting boolean operations on regular shapes, and has the advantage that animations may be accurately produced at any resolution.

Let's step through the rendering of a simple image of a room with flat wood walls with a grey pyramid in the center of the room. The pyramid will have a spotlight shining on it. Each wall, the floor and the ceiling is a simple polygon, in this case, a rectangle. Each corner of the rectangles is defined by three values referred to as X, Y and Z. X is how far left and right the point is. Y is how far up and down the point is, and Z is far in and out of the screen the point is. The wall nearest us would be defined by four points: (in the order x, y, z). Below is a representaion of how the wall is defined.

 (0, 10, 0)                        (10, 10, 0)





 (0,0,0)                           (10, 0, 0)

The far wall would be:

(0, 10, 20)                        (10, 10, 20)





(0, 0, 20)                         (10, 0, 20)

The pyramid is made up of five polygons: the rectangular base, and four triangular sides. To draw this image the computer uses math to calculate how to project this image, defined by three dimensional data, onto a two dimensional computer screen.

First we must also define where our view point is, that is, from what vantage point will the scene be drawn. Our view point is inside the room a bit above the floor, directly in front of the pyramid. First the computer will calculate which polygons are visible. The near wall will not be displayed at all, as it is behind our view point. The far side of the pyramid will also not be drawn as it is hidden by the front of the pyramid.

Next each point is perspective projected onto the screen. The portions of the walls ‘farthest’ from the view point will appear to be shorter than the nearer areas due to perspective. To make the walls look like wood, a wood pattern, called a texture, will be drawn on them. To accomplish this, a technique called “texture mapping” is often used. A small drawing of wood that can be repeatedly drawn in a matching tiled pattern (like wallpaper) is stretched and drawn onto the walls' final shape. The pyramid is solid grey so sp its surfaces can just be rendered as grey. But we also have a spotlight. Where its light falls we lighten colors, where objects blocks the light we darken colors.

Next we render the complete scene on the computer screen. If the numbers describing the position of the pyramid were changed and this process repeated, the pyramid would appear to move.

See also: Skeletal animation

Notable movies and TV shows

CGI short films have been produced as independent animation since the 1970s, though the popularity of computer animation (especially in the field of special effects) skyrocketed during the animation boom of the 1990s.

Below is a selected list of films and television shows that employ computer animation.

See also