Computer-Based Animation

advertisement
SWE 423: Multimedia Systems
Chapter 6: Computer-Based
Animation
Outline
•
•
•
•
•
•
•
Introduction
Producing an Animation
Specifications of Animations
Methods of Controlling Animations
Display of Animations
Transmission of Animations
VRML
Introduction
• An animation covers all changes that have a
visual effect
–
–
–
–
–
–
–
Introduction
• Computer-based animations are produced, edited
and generated with the help of graphical tools to
create visual effects
– Multimedia API’s
• Java3D
– Constructs and renders 3D graphics
– Provides a basic set of object primitives (cube, splines,...etc.)
– An abstraction layer built on top of DirectX or OpenGL
• DirectX
– Windows API that supports video, images, audio, and 3D
animation
– Most widely used for Windows-based animations (video games)
• OpenGL
– Most popular 3D API in use today
– Highly portable
Introduction
• Computer-based animations are produced, edited and generated
with the help of graphical tools to create visual effects
– Rendering Tools
• 3D Studio Max
– Character animation, game development and visual effects production (Sony
Playstation)
• Softimage XSI
– For animation and special effects in movies
• Maya
– Softimage competitor
• RenderMan
– Excels in creating complex surface appearances and images
– Has been used in many movies.
– Simple/Quick Animation Generators
• GIF Animation Packages
– Looping through several GIF images creates an animation
– Gifcon and GifBuilder (Windows) and animate (Linux)
Producing An Animation
• Input Process
– Drawings must be digitized or generated
• Digitizing photos or drawings may require post-processing in
order to remove any glitches
• Composition Stage
– Individual frames in a completed animation are
generated by using image composition techniques to
combine foreground and background elements
– Trailer film is generated from placing low-resolution
digitized frames in a grid.
Producing An Animation
• InBetween Process
– Interpolation methods are used to animate the
movement from one position to another.
• Linear interpolation (lerping) is the simplest but the
most limited
– E.g. the interpolation of animating throwing a ball using
three points
• Splines can be used to smoothly vary different
parameters as a function of time, yet the problem is
not completely solved (very complex)
Producing An Animation
• Changing Colors
– Uses the Color LookUp Table (CLUT) or
(LUT) of the graphics memory and the double
buffering method
• Two parts of a frame are stored in different areas of
graphic memory.
– The graphic memory is divided into two fields, each
having half as many bits per pixel.
• The animation is generated by manipulating the
CLUT.
Specification of Animations
• Formal specifications that describe
animations can be divided into three
categories:
– Linear-List Notations
– High-Level Programming Language Notations
– Graphical Languages
Linear List Notations
• Each event is described by a beginning frame
number, an end frame number and an action event
that is to be performed.
– Action events may accept input parameters
• For example
42, 53, B, ROTATE “PALM”, 1, 30
– This instruction means......
• SCEne Format (Scefo) specification can be
considered a superset of linear sets including
groups and object hierarchies as well as
transformation abstractions using high-level
languages constructs.
High-Level Programming
Languages Notations
• Values of variables can be used as parameters for
animation routines.
• For example, ASAS is a LISP extension that includes
primitives such as vectors, colors, polygons, surfaces,
groups, points of view, subworlds, and lighting aspects
in addition to geometrical transformations operating on
objects
– For example
(grasp my-cube); cube is current object
(cw 0.05); small clock-wise rotation
(grasp camera); camera is current object
(right panning-speed); Move it to the right
Graphical Languages
• Graphical actions cannot be easily described
by and/or understood from textual scripts.
• Hence, graphical animation languages
describe animations in a visual manner.
• GENESYS, DIAL and S-Dynamics System
are examples of such systems.
Methods of Controlling Animations
•
•
•
•
•
Explicitly Declared
Procedural
Constraint-Based
Analyzing Live Action-Based
Kinematic and Dynamic
Explicitly Declared Control
• All events that could occur in an animation
are declared. This can be done at the
– object level by specifying simple
transformations (translations, rotations, scaling)
to objects
– frame level by specifying key frames and
methods for interpolating between them.
Procedural Control
• Based on communication among different
objects whereby each object obtains
knowledge about the static/dynamic
properties of other objects.
– Can be used to ensure consistency
• For example ....
Constraint-Based Control
• Many objects movements in the real world
are determined by other objects which they
come in contact with
– E.g. presence of strong wind or fast moving
large objects
• Instead of explicit declaration, constraints
based on the environment can be used to
control objects’ motion.
• Example Systems: Sketchpad and
ThingLab.
Analyzing Live Action-Based Control
• Control is achieved by examining the motions of
objects in the real world.
– Rotoscoping: is a technique where animators trace live
action movement, frame by frame, for use in animated
films.
• Originally, pre-recorded live-film images were projected onto a
frosted glass panel and redrawn by an animator.
– This projection equipment is called a Rotoscope.
• Another way is to attach indicators to key points
on the body of a human actor.
– For example the data glove [gesture language for
hearing-impaired people]
Kinematic and Dynamic Control
• Kinematics refer to the position and velocity of
points
– “The cube is at the origin at time t = 0. Thereafter, it
moves with constant acceleration in the direction (1
meter, 1 meter, 5 meters)”
• Dynamics takes into account the physical laws that
govern kinematics
– Newton laws for the movement of large objects
– Euler-Lagrange equations for fluids
– A particle moves with an acceleration proportional to
the forces acting on it.
– For example: “At time t = 0, the cube is at position (0
meter, 100 meter, 0 meter). The cube has a mass of 100
grams. The force of gravity acts on the cube.”
Display of Animation
• To display animations with raster systems,
the animated objects must be scanconverted and stored as pixmap in the frame
buffer.
– Scan conversion must be done at least 10 times
per second to ensure smooth visual effects.
• The actual scan-conversion must take a small
portion of 10 times/second in order to avoid
distracting ghost effect
• Double buffering is used to avoid the ghost effect
Display of Animation
• Example
Load CLUT to display values as background color;
Scan-convert object into image0
Load CLUT to display only image0
Repeat
Scan-convert object into image1
Load CLUT to display only image1
Rotate object data structure description
Scan-convert object into image0
Load CLUT to display only image0
Rotate object data structure description
Until (termination condition)
Transmission of Animation
• Two forms of transmission
– Symbolic representation of an animation is transmitted
together with the operations performed on the object.
• The receiver displays the animation.
– Transmission is fast since text is much smaller than pixmaps
– Display is slow since the pixmap has to be generated from their
descriptions.
– The pixmap representations are transmitted and
displayed
• Transmission time is longer.
• Display is faster.
VRML
• Virtual Reality Modeling Language
– Describes 3D interactive worlds and objects that can be
used together with the World Wide Web.
• Illustrations, product definitions or virtual reality presentations
can be generated on the Web.
– History of VRML
• May 1994: At the first Int. Conf. on the WWW, the idea of a
platform-independent standard for 3-D WWW applications
originated
• October 1994: VRML 1.0 was presented at the second Int.
Conf. on the WWW.
– VRML 1.0 defined the parameters for creating 3D objects that
can travel across the Internet.
• August 1995: VAG (Vrml Architecture Group) was established
VRML
– History of VRML
• January 1996: VAG called for proposals for VRML 2.0.
Each of the following submitted their own
– Apple: “Out of this World”
– Sun: “Holoweb”
– German National Research Center for Information Technology
(GMD) and others: “Dynamic Worlds”
– IBM Japan: “Reactive Virtual Environment”
– Microsoft: “Active VRML”
– Silicon Graphics Inc. (SGI), Sony, and others “Moving Worlds”
• August 1996: VRML 2.0 in its final form was presented
in SIGGRAPH 96.
VRML Capabilities
• VRML is capable of representing static and
animated objects as well as hyperlinks to
other media such as sound, motion pictures
and still pictures
• There are three ways of navigating though a
virtual world:
– Walk: Movement over the ground at eye-level
– Fly: Movement at any height
– Examine: Rotating an object in order to closely
examine it.
VRML Example
Color interpolator
This example interpolates in a 10-second long cycle
from red to green to blue
DEF myColor ColorInterpolator{
key [0.0, 0.5, 1.0]
keyValue [1 0 0, 0 1 0, 0 0 1] # red, green, blue
}
DEF myClock TimeSensor {
cycleInterval 10.0
# 10 second animation
loop
TRUE
# animation in endless loop
Download