Interpolation (computer programming)

Interpolation (computer programming)

In the context of computer animation, interpolation refers to the use of (usually) piecewise polynomial interpolation to draw images semi-automatically.

For all applications of this type, a set of "key points" is defined by the graphic artist. These are values that are rather widely separated in space or time, and represent the desired result, but only in very coarse steps. The computed interpolation process is then used to insert many new values in between these key points to give a "smoother" result. In its simplest form, this is the drawing of two dimensional curves. The key points, placed by the artist, are used by the computer algorithm to form a smooth curve either through, or near these points. For a typical example of 2-D interpolation through key points see cardinal spline. For examples which go near key points see nonuniform rational B-spline, or Bézier curve. This is extended to the forming of three dimensional curves, shapes and complex, dynamic artistic patterns such as used in laser light shows.

The process can be extended to motions. The path of an object can be interpolated by providing some key locations, then calculating many in between locations for a smooth motion. In addition to position, the speed or velocity, as well as accelerations along a path, can be calculated to mimic real-life motion dynamics. Where the subjects are too large or complex to move, the camera position and orientation can be moved by this process. This last is commonly called motion control.

Going further, orientations (rotations) of objects and parts of objects can be interpolated as well as parts of complete characters. This process mimics that used in early cartoon films. Master animators would draw key frames of the film, then, junior animators would draw the in-between frames. This is called inbetweening or tweening and the overall process is called "key frame animation". To make these motions appear realistic, interpolation algorithms have been sought which follow, or approximate real life motion dynamics. This applies to things such as the motion of arms and legs from frame to frame, or the motion of all parts of a face, given the motion of the important, key points of the face. Defining the motion of key strands of hair, spread around an animal, can be made into full fur. Using custom algorithms, motions with unique, unnatural and entertaining visual characteristics can be formed. The color of an object can be defined by key color-locations or frames allowing the computation of smooth color gradients around an object or varying in time. Algorithms such as the Kochanek-Bartels spline provide additional adjustment parameters which allow customizing the in-between behavior to suit a wide variety of situations. The article on tweening currently demonstrates several of these.

Another important area of this subject is the computational burden of these algorithms. Algorithms with faster execution times are sought to produce more of these results in less time in order to complete these projects quicker. As the resolution increases to produce animated feature films, the amount of processing can increase greatly.

ee also

* Morphing


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Interpolation theory — This article is about Interpolation Theory in Biology. See also interpolation (mathematics), interpolation (music), interpolation (manuscripts) and interpolation (computer programming) .The Interpolation Theory, also known as the Intercalation… …   Wikipedia

  • Programming language — lists Alphabetical Categorical Chronological Generational A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that… …   Wikipedia

  • Interpolation search — is an algorithm for searching for a given key value in an indexed array that has been ordered by the values of the key. It parallels how humans search through a telephone book for a particular name, the key value by which the book s entries are… …   Wikipedia

  • Dynamic programming — For the programming paradigm, see Dynamic programming language. In mathematics and computer science, dynamic programming is a method for solving complex problems by breaking them down into simpler subproblems. It is applicable to problems… …   Wikipedia

  • String (computer science) — In formal languages, which are used in mathematical logic and theoretical computer science, a string is a finite sequence of symbols that are chosen from a set or alphabet. In computer programming, a string is traditionally a sequence of… …   Wikipedia

  • Linear programming — (LP, or linear optimization) is a mathematical method for determining a way to achieve the best outcome (such as maximum profit or lowest cost) in a given mathematical model for some list of requirements represented as linear relationships.… …   Wikipedia

  • List of numerical analysis topics — This is a list of numerical analysis topics, by Wikipedia page. Contents 1 General 2 Error 3 Elementary and special functions 4 Numerical linear algebra …   Wikipedia

  • Inbetweening — or tweening is the process of generating intermediate frames between two images to give the appearance that the first image evolves smoothly into the second image. Inbetweens are the drawings between the key frames which help to create the… …   Wikipedia

  • List of mathematics articles (I) — NOTOC Ia IA automorphism ICER Icosagon Icosahedral 120 cell Icosahedral prism Icosahedral symmetry Icosahedron Icosian Calculus Icosian game Icosidodecadodecahedron Icosidodecahedron Icositetrachoric honeycomb Icositruncated dodecadodecahedron… …   Wikipedia

  • Variable — A variable (pronEng|ˈvɛərɪəbl) is an attribute of a physical or an abstract system which may change its value while it is under observation. Examples include the height of a child, the temperature across a state, or the input to a function. This… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”