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