Animation – A broad Brush

Slides:



Advertisements
Similar presentations
Animating Speed Position and Orientation Presented by Kailash Sawant Hemanth Krishnamachari.
Advertisements

Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
Real-Time Rendering SPEACIAL EFFECTS Lecture 03 Marina Gavrilova.
1Notes  Textbook: matchmove 6.7.2, B.9. 2 Match Move  For combining CG effects with real footage, need to match synthetic camera to real camera: “matchmove”
Particle Systems 1 Adapted from: E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012.
Particle Systems and Fuzzy Shapes Presented by Dan Cogswell.
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves Jinxiang Chai.
UFCEKT-20-33D Modelling and Animation 3D Modelling & Animation Special Effects Picture...
Particle Systems GPU Graphics. Sample Particle System Fire and SmokeWater.
1 7M836 Animation & Rendering Animation Jakob Beetz Joran Jessurun
Modeling Fluid Phenomena -Vinay Bondhugula (25 th & 27 th April 2006)
Cornell CS 468Andrew Butts 1 Implementing Particle Systems CS 468 Spring 2004 Andrew Butts.
1Notes. 2 Time integration for particles  Back to the ODE problem, either  Accuracy, stability, and ease-of- implementation are main issues  Obviously.
1cs426-winter-2008 Notes. 2 Velocity fields  Velocity field could be a combination of pre-designed velocity elements E.g. explosions, vortices, …  Or.
1cs426-winter-2008 Notes  Assignment 1 is out, due immediately after reading week (Feb 25)  Please read: William T. Reeves, "Particle systems: a technique.
Computer Animation CS 445/645 Fall Let’s talk about computer animation Must generate 30 frames per second of animation (24 fps for film) Issues.
Feature-length films: Games: Desktop Animations: Computer Animation.
05/09/02(c) 2002 University of Wisconsin Last Time Global illumination algorithms Grades so far.
Faking Dynamics of Cloth Animation for Animated Films Fabian Di Fiore Expertise Centre for Digital Media Hasselt University, Belgium
Physically Based Animation and Modeling
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 19 Other Graphics Considerations Review.
Modelling and Simulation Dynamics. Dynamics Dynamics is a branch of physics that describes how objects move. Dynamic animation uses rules of physics to.
Animation of Fluids.
CS559: Computer Graphics Lecture 38: Animation Li Zhang Spring 2008 Slides from Brian Curless at U of Washington.
CSC418 Computer Graphics n Animation Principles n Keyframe Animation.
09/09/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Event management Lag Group assignment has happened, like it or not.
Passage Three Multimedia Application. Training target: In this part , you should try your best to form good reading habits. In order to avoid your ill.
09/11/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Graphics Pipeline Texturing Overview Cubic Environment Mapping.
Particle Systems – Technique for Modeling a Class of Fuzzy Objects Craig Schroeder Computer Graphics I April 22, 2004.
CS 638, Fall 2001 Today Project Stage 0.5 Environment mapping Light Mapping.
Particle Systems Simulation for special effects.
Computer Graphics 2 In the name of God. Outline Introduction Animation The most important senior groups Animation techniques Summary Walking, running,…examples.
Animation CS 551 / 651 Lecture 2 Introduction Introduction.
Computer Science Term 1, 2006 Tutorial 3 Assignment 4 – Special Effects.
Chapter 6 Circular Motion and Other Applications of Newton’s Laws.
Computing & Information Sciences Kansas State University Lecture 15 of 42CIS 636/736: (Introduction to) Computer Graphics Lecture 15 of 42 William H. Hsu.
Computer Animation CS 551/645 Fall Administrivia Assignment due Tuesday morning –Depending on when you downloaded writerib.C Move walls of room.
CSC505 Particle Systems. CSC505 Object Representations So far we have represented (rendered) objects with –Lines –Polygons (triangles) –Curves These techniques.
Detail-Preserving Fluid Control N. Th ű rey R. Keiser M. Pauly U. R ű de SCA 2006.
Hierarchical Modeling
CLASS 10 SCENE GRAPHS BASIC ANIMATION CS770/870. A scene Graph A data structure to hold components of a scene Usually a Tree of a Directed Acyclic Graph.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
Particle Systems (Motion Machines of 2D Objects with Textures) Matthew K. Bowles Advanced Computer Graphics Spring 2004.
Animation CS 551 / 651 David Brogan
Particles Paul Taylor Polygons are not so hot! Good for representing objects like A Cup A Robot A Pyramid Not so hot for creating Hair Snowflakes.
Point Sprites Course Information CVG: Programming 4 My Name: Mark Walsh Website: Recommended.
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves Jinxiang Chai.
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves Jinxiang Chai.
Chapter 12 Forces and Motion.
Perpetual Visualization of Particle Motion and Fluid Flow Presented by Tsui Mei Chang.
Zhang & Liang, Computer Graphics Using Java 2D and 3D (c) 2007 Pearson Education, Inc. All rights reserved. 1 Chapter 11 Animation.
Discontinuous Displacement Mapping for Volume Graphics, Volume Graphics 2006, July 30, Boston, MA Discontinuous Displacement Mapping for Volume Graphics.
Graphics Lecture 17: Slide 1 Interactive Computer Graphics Lecture 17: Fire.
Particles and their home in Geometry Shaders Paul Taylor 2010.
Advanced Games Development Game Physics CO2301 Games Development 1 Week 19.
Graphics for Games Particle Systems CO2301 Games Development 1 Week 23.
Animation Animation is about bringing things to life Technically: –Generate a sequence of images that, when played one after the other, make things move.
Computer Graphics Imaging Ying Zhu Georgia State University Lecture 29 Soft Bodies and Rigid Bodies.
Processing Images and Video for An Impressionist Effect Automatic production of “painterly” animations from video clips. Extending existing algorithms.
Feature-length films: Games: Desktop Animations:.
3D Animation 3. Animation Dr. Ashraf Y. Maghari Information Technology Islamic University of Gaza Ref. Book: The Art of Maya.
Computer Animation CS 446 September 5, 2001.
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves
© University of Wisconsin, CS559 Fall 2004
UMBC Graphics for Games
(c) 2002 University of Wisconsin
Advanced Games Development Game Physics
Computer Graphics Lecture 15.
Particle Systems - A Technique for Modeling a Class of Fuzzy Objects
Presentation transcript:

Animation – A broad Brush Traditional Methods Cartoons, stop motion Keyframing Digital inbetweens Motion Capture What you record is what you get Simulation Animate what you can model (with equations)

Computer Animation

Keyframing Traditional animation technique Dependent on artist to generate ‘key’ frames Additional, ‘inbetween’ frames are drawn automatically by computer

Keyframing How are we going to interpolate? From “The computer in the visual arts”, Spalter, 1999

Linear Interpolation Simple, but discontinuous velocity

Nonlinear Interpolation Smooth ball trajectory and continuous velocity, but loss of timing

Easing Adjust the timing of the inbetween frames. Can be automated by adjusting the stepsize of parameter, t.

Style or Accuracy? Interpolating time captures accuracy of velocity Squash and stretch replaces motion blur stimuli and adds life-like intent

Traditional Motivation Ease-in and ease-out is like squash and stretch Can we automate the inbetweens for these? “The Illusion of Life, Disney Animation” Thomas and Johnson

Procedural http://jet.ro/dismount www.sodaplay.com

Examples Inanimate video game objects Special effects GT Racer cars Soapbox about why this is so cool Special effects Explosions, water, secondary motion Phantom Menace CG droids after they were cut in half

Procedural Animation Very general term for a technique that puts more complex algorithms behind the scenes Technique attempts to consolidate artistic efforts in algorithms and heuristics Allows for optimization and physical simulation

Procedural Animation Strengths Animation can be generated ‘on the fly’ Dynamic response to user Write-once, use-often Algorithms provide accuracy and exhaustive search that animators cannot

Procedural Animation Weaknesses We’re not great at boiling human skill down to algorithms How do we move when juggling? Difficult to generate Expensive to compute Difficult to force system to generate a particular solution Bicycles will fall down

Particle Systems Particle systems provide a powerful framework for animating numerous similar elementary “objects” at the same time. Those objects are called particles. Using a lot of particles with simple physics allow us to model complex phenomena such as: Fireworks Waterfalls Smoke Fire Flocking Clothes, etc. Cornell CS 468

Typical Particle system animation routine Animate a particle System While animation not finished Do Delete expired particles Create new particles Simulate Physics Update particle attributes Render particles

Particle A particle is described by physical body attributes, such as: typedef struct // Create A Structure For Particle { bool active; // Active (Yes/No) float life; // Particle Life float fade; // Fade Speed float r; // Red Value float g; // Green Value float b; // Blue Value float x; // X Position float y; // Y Position float z; // Z Position float xi; // X Direction float yi; // Y Direction float zi; // Z Direction float xg; // X Gravity float yg; // Y Gravity float zg; // Z Gravity } particles; // Particles Structure A particle is described by physical body attributes, such as: Mass, Position, Velocity, Acceleration, Color, Life time.

initAll(){ for(int i = 0; i <= MAX_PARTICLES; i++){ Particles[i].x = rand() % WORLD_WIDTH; Particles[i].y = rand() % WORLD_HEIGHT; Particles[i].z = rand() % WORLD_DEPTH;}} initEntity(int index){ Particles[index].x = rand() % WORLD_WIDTH; Particles[index].y = rand() % WORLD_HEIGHT; Particles[index].z = rand() % WORLD_DEPTH;} render(){ draw_rain_texture(Particles[i].x, Particles[i].y, Particles[i].z); }} update(){ for(int i = 0; i <= MAX_PARTICLES; i++) { Particles[i].y =- (rand() % 2) - 2.5; if (collisiondetect(Particles[i])) { initEntity(i); } }}

Example - Firework During the explosion phase, each particle has its own mass, velocity and acceleration attributes modified according to a random, radially centered speed component. Firework Gravity Field During the rocket phase, all particles flock together. The speed of the particles inside the illusory rocket is determined by the initial launch speed to which we subtract the influence of gravity

Physics F = m*a a =F/m a = g = 9.81 m/s a(t + dt) = - gz where z is upward unit vector v(t+dt) = v(t) + a(t) dt x(t+dt) = x(t) + v(t)dt + ½ a(t^2)dt

Particle system - Applications Using this general particle system framework, there are various animation effects that can be simulated such as force field (wind, pressure, gravity), viscosity, collisions, etc. Rendering particles as points is straightforward, but we can also draw tiny segments for giving the illusion of motion blur, or even performing ray casting for obtaining volumetric effects.

The QuadParticles Class Although many particle systems can be modeled with points and lines, moving to quadrilaterals (quads) combined with textures allows many more interesting effects. The texture can contain extra surface detail, and can be partially transparent in order to break up the regularity of the quad shape. A quad can be assigned a normal and a Material node component to allow it to be affected by lighting in the scene. The only danger with these additional features is that they may slow down rendering by too much. For example, we want to map the texture to each quad (each particle), but do not want to use more than one QuadArray and one Texture2D object.

Forces A = F/m Particle masses won’t change But need to evaluate F at every time step. The force on one particle may depend on the positions of all the others

Typically, have multiple independent forces. For each force, add its contribution to each particle. Need a force accumulator variable per particle Or accumulate force in the acceleration variable, and divide by m after all forces are accumulated

Forces Example forces Earth gravity, air resistance Springs, mutual gravitation Force fields Wind Attractors/Repulsors Vortices

Forces Earth Gravity Drag Uniform Wind f = -9.81*(particle mass in Kg)*Y Drag f = -k*v Uniform Wind f = k

Forces Simple Random Wind Noisy Random Wind After each timestep, add a random offset to the direction Noisy Random Wind Acts within a bounding box Define a grid of random directions in the box Trilinear interpolation to get f After each timestep, add a random offset to each direction and renormalize

Attractors/Repulsors Forces Attractors/Repulsors Special force object at position x Only affects particles within a certain distance Within the radius, distance-squared falloff if |x-p| < d v = (x-p)/|x-p| f = ±k/|x|2 *x else f = 0 Use the regular grid optimization from lecture

Emitters What is it?! Object with position, orientation Regulates particle “birth” and “death” Usually 1 per particle system More than 1 can make controlling particle death inconvenient

Emitters Regulating particles At “birth,” reset the particle’s parameters Free to set them arbitrarily! For “death,” a few possibilities If a particle is past a certain age, reset it. Keep an index into the particle array, and reset a group of K particles at each timestep. Should allocate new particles only once! Recycle their objects or array positions.

Emitters Fountain Demo Given the emitter position and direction, we have a few possibilities: Choose particle velocity by jittering the direction vector Choose random spherical coordinates for the direction vector Demo http://www.delphi3d.net/download/vp_sprite.zip

Spheres are easy but boring. Rendering Spheres are easy but boring. Combine points, lines, and alpha blending for moderately interesting effects. Render oriented particle meshes Store rotation info per-particle Keep meshes facing “forward” along their paths Can arbitrarily pick “up” vector

Rendering Render billboards Want to represent particles by textures Should always face the viewer Should get smaller with distance Want to avoid OpenGL’s 2d functions

Rendering Render billboards (one method) Draws an image-plane aligned, diamond-shaped quad Given a particle at p, and the eye’s basis (u,v,w), draw a quad with vertices: q0 = eye.u q1 = eye.v q2 = -eye.u q3 = -eye.v Translate it to p Will probably want alpha blending enabled for smoke, fire, pixie dust, etc. See the Red Book for more info.

Particle Illusion Demo Simulation Loop Recap A recap of the loop: Initialize/Emit particles Run integrator (evaluate derivatives) Update particle states Render Repeat! Particle Illusion Demo www.wondertouch.com