250 likes | 271 Views
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.
E N D
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 scan-converted 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