Presentation Transcript
Computer Animation: Computer Animation Displaying animation sequences
raster animation
Creating animation sequences
object definition
path specification
key frames
in-betweening
Parametric equations
Steps of a simple computer animation: Steps of a simple computer animation 1. Creating animation sequences
object definition
path specification (for an object or a camera)
key frames
in-betweening
2. Displaying the sequences
raster animation
colour-table animation
Displaying animation sequences: Displaying animation sequences
Movies work by fooling our eyes
A sequence of static images presented in a quick succession appears as continuous flow
Why animation works: Why animation works The eye cannot register images faster than approximately 50 frames per second
(30 is just about adequate)
If a gap in the projection occurs, the eye seems to perform spatial interpolation over the gap
Displaying animation sequences: Displaying animation sequences To achieve smooth animation, a sequence of images (frames) have to be presented on a screen with the speed of at least 30 per second
Animations frames can be
pre-computed in advance and pre-loaded in memory
computed in real time (e.g. movement of the cursor)
Raster animation: Raster animation This is the most common animation technique
Frames are copied very fast from off-screen memory to the frame buffer
Copying usually done with bitBLT-type operations
Copying can be applied to
complete frames
only parts of the frame which contain some movement
Examples: Examples
BitBLT with logic: BitBLT with logic
Raster animation - procedures: Raster animation - procedures A part of the frame in the frame buffer needs to be erased
The static part of the frame is re-projected as a whole, and the animated part is over-projected.
Double buffering: Double buffering Used to achieve smooth animation
The next frame of animation is computed to an off-screen buffer at the same time when the current frame is transferred to the frame buffer.
Colour-table animations: Colour-table animations
Simple 2D animations can be easily implemented using colour lookup table.
This technique will be described later
CREATING ANIMATION SEQUENCES: CREATING ANIMATION SEQUENCES
Object definition: Object definition In simple manual systems, the objects can be simply the artist drawings
In computer-generated animations, models are used
Examples of models:
a "flying logo" in a TV advert
a walking stick-man
a dinosaur attacking its prey in Jurassic Park
Models can be: Models can be Rigid (i.e. they have no moving parts)
Articulated (subparts are rigid, but movement is allowed between the sub-parts)
Dynamic (using physical laws to simulate the motion)
Particle based (animating individual particles using the statistics of behaviour)
Behaviour based (e.g. based on behaviour of real animals)
Slide16: Simple rigid objects can be defined in terms of
polygon tables (3D)
basic shapes such as line segments, circles, splines etc. (2D)
Rigid body animation is an extension of the three-dimensional viewing
Path specification: Path specification Impression of movement can be created for two basic situations, or for their combination:
static object, moving camera
static camera, moving object
The path defines the sequence of locations (for either the camera or the object) for the consecutive time frames
Static object, moving camera: Static object, moving camera Time
Static camera, moving object: Static camera, moving object
Static object, moving camera: Static object, moving camera The path specifies the spatial coordinates along which the camera moves
The path is usually specified for a single point, e.g. the VRP
Static object, moving camera: Static object, moving camera During movement, the target point in the World coordinate system can
remain the same (e.g. when walking or flying around the object to see it from all directions);
change (e.g. standing in one location and looking round, or moving along a given path and showing the view seen by the observer while moving).
Static camera, moving object: Static camera, moving object Path specifying the object movement has to be defined
The path is defined as the spatial coordinates along which the object moves
Static camera, moving object: Static camera, moving object Objects and their parts are defined in a local coordinate system
Animation path is defined in the World coordinate system
The path is specified for a single point, e.g. the centre of the object's local coordinate system
Coordinates of the actual points describing the object are calculated afterwards
Slide24:
It is important to remember that when the object moves along the path, not only its position changes, but also its orientation
Slide25:
It is important to remember that when the object moves along the path, not only its position changes, but also its orientation X Y Z
KEY FRAMES AND IN-BETWEENING: KEY FRAMES AND IN-BETWEENING
Rigid body animation: Rigid body animation
Rigid body animation uses standard 3D transformations
At least 30 frames per second to achieve smooth animation
Computing each frame would take too long
Key frames: Key frames Compute first a small number of key frames
Interpolate the remaining frames in-between these key frames (in-betweening)
Key frames can be computed
at equal time intervals
according to some other rules
for example when the direction of the path changes rapidly
In-betweening: In-betweening
The simplest method of in-betweening is linear interpolation
Interpolation is normally applied to the projected object points
In-betweening - example: In-betweening - example
Given coordinates of a 2D point
key frame n: (xn,yn)
key frame n+1: (xn+1,yn+1)
time interval between the two key frames: 1/10 second
To get smooth animation, needs at least 30 frames per second
Solution: insert at least further 2 frames between the given two key frames
Calculating in-between frames using linear interpolation: Calculating in-between frames using linear interpolation
x = (xn+1 - xn) / 3
y = (yn+1 - yn) / 3
for ( i=1; i<3; i++ )
{
xi = xn + i * x
yi = yn + i * y
}
In-betweening: In-betweening
Linear interpolation will not always produce realistic results.
Example: an animation of a bouncing ball where the best in-betweening can be achieved by dynamic animation
In-betweening: In-betweening In-betweening should use interpolation based on the nature of the path, for example:
straight path linear interpolation
circular path angular interpolation
irregular path linear interpolation
spline
Parametric equations: Parametric equations
Formulae using parametric representation of lines and curves, e.g.
line segment
circle
Bezier curve
A flexible tool for interpolation
Parametric equations - line segment: Parametric equations - line segment Example for line segment between two points, (xn,yn) and (xn+1,yn+1)
calculate points in between the two given points
xi = xn + t (xn+1 - xn)
yi = yn + t (yn+1 - yn)
t is the parameter which always changes between 0 and 1
when t = 0, we get xn
when t = 1 we get xn+1
for 0 < t < 1 we get the points in between Parametric equations - line segment
Parametric equations - line segment: Parametric equations - line segment The only thing to decide is the number steps between point n and point n+1
This allows us to set the value of t , which is 1 divided by the number of steps
For example, for 10 steps, t = 1/10 = 0.1
This formula works also for points in 3D
Parametric equations - Circle: Parametric equations - Circle Given Circle radius: r
Centre at: (0,0)
Parametric quations
x( t ) = r * cos( 2t )
y( t ) = r * sin( 2 t )
Parametric equations - Circle: Parametric equations - Circle Parametric quations
x( t ) = r * cos( 2t )
y( t ) = r * sin( 2 t )
Algorithm
Select t
for(t=0; t<=1; t = t+ t )
{
plot point at x = x( t ) = r * cos( 2 t )
y = y( t ) = r * sin( 2 t )
}