Computer Animation. Animation A broad Brush. Keyframing. Keyframing

Similar documents
CS4621/5621 Fall Particle Systems and Compute Shaders

Dynamical Simulation 1: Particle Systems and ODEs

Particle Systems. Sample Particle System. What is a particle system? Types of Particle Systems. Stateless Particle System

Computer Animation. Conventional Animation

Computer Graphics. Si Lu. Fall uter_graphics.htm 11/27/2017

9 Dynamics. Getting Started with Maya 491

animation projects in digital art animation 2009 fabio pellacini 1

animation computer graphics animation 2009 fabio pellacini 1 animation shape specification as a function of time

CS 354 R Game Technology

Chapter 19- Object Physics

CS 378: Computer Game Technology

COMP371 COMPUTER GRAPHICS

animation computer graphics animation 2009 fabio pellacini 1

Topic 10: Scene Management, Particle Systems and Normal Mapping. CITS4242: Game Design and Multimedia

CS 354R: Computer Game Technology

Announcements. Ray tracer is due in five days you should have started by now or you re going to have a bad week. Missing file posted on the web page

Keyframe Animation. Animation. Computer Animation. Computer Animation. Animation vs Modeling. Animation vs Modeling

Topics in Computer Animation

Chapter 14 Particle Systems & Interactions

Flowmap Generator Reference

CS770/870 Spring 2017 Animation Basics

CS770/870 Spring 2017 Animation Basics

Chapter 13 - Modifiers

Simulation: Particle Systems

Designing the look and feel for Smoke and Neon powers The creation of a new toolset and pipeline for I:SS Pros and cons from our new workflow and

Flames in Particle Flow

Rendering Smoke & Clouds

BCC Particle System Generator

Dynamics in Maya. Gary Monheit Alias Wavefront PHYSICALLY BASED MODELING SH1 SIGGRAPH 97 COURSE NOTES

2D & 3D Animation NBAY Donald P. Greenberg March 21, 2016 Lecture 7

Reading. Animation principles. Required:

Animation. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 4/23/07 1

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala

Particle Systems A Technique for Modeling a Class of Fuzzy Objects

History. Early viewers

Particle Systems. Typical Time Step. Particle Generation. Controlling Groups of Objects: Particle Systems. Flocks and Schools

Adarsh Krishnamurthy (cs184-bb) Bela Stepanova (cs184-bs)

Images from 3D Creative Magazine. 3D Modelling Systems

Dynamics and Particle Effects, Part 1 By Audri Phillips

move object resize object create a sphere create light source camera left view camera view animation tracks

Textures III. Week 10, Wed Mar 24

CSE 167: Introduction to Computer Graphics Lecture #19: Wrapping Up. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017

Hidden Surface Elimination Raytracing. Pre-lecture business. Outline for today. Review Quiz. Image-Space vs. Object-Space

Cloth Simulation on GPU

Controlling Particle Systems. All elements of a particle system are controlled through this dialog: There are several key parts to this dialog:

Animation. CS 4620 Lecture 33. Cornell CS4620 Fall Kavita Bala

Sign up for crits! Announcments

CS /15-667: Simulation Methods for Animation and Digital Fabrication

Computer Animation Fundamentals. Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics

Virtual Environments

Rendering diffuse objects using particle systems inside voxelized surface geometry. Thorsten Juckel Steffi Beckhaus

Lecture 30 of 41. Animation 3 of 3: Inverse Kinematics Control & Ragdoll Physics

Chapter 3: Computer Animation Reminder: Descriptive animation. Procedural animation : Examples. Towards methods that generate motion?

Particle Systems. Lecture 8 Taku Komura

Navier-Stokes & Flow Simulation

Richard Williams Study Circle Handout: Disney 12 Principles of Animation. Frank Thomas & Ollie Johnston: The Illusion of Life

Visualization Computer Graphics I Lecture 20

GPU Computing: Particle Simulation

Realtime Water Simulation on GPU. Nuttapong Chentanez NVIDIA Research

NVIDIA. Interacting with Particle Simulation in Maya using CUDA & Maximus. Wil Braithwaite NVIDIA Applied Engineering Digital Film

Mass-Spring Systems. Last Time?

Lecture 30 of 41. Animation 3 of 3: Inverse Kinematics Control & Ragdoll Physics

Cloth Simulation on the GPU. Cyril Zeller NVIDIA Corporation

Actions and Graphs in Blender - Week 8

The 3D rendering pipeline (our version for this class)

Course Review. Computer Animation and Visualisation. Taku Komura

Animations. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Kavita Bala

Consider a partially transparent object that is illuminated with two lights, one visible from each side of the object. Start with a ray from the eye

Computer Animation. Algorithms and Techniques. z< MORGAN KAUFMANN PUBLISHERS. Rick Parent Ohio State University AN IMPRINT OF ELSEVIER SCIENCE

Advanced Algorithms. Particle Systems. Reading. What is a Particle System?

Soft Body Dynamics. Input Tab

Computer Graphics (CS 563) Lecture 4: Advanced Computer Graphics Image Based Effects: Part 1. Prof Emmanuel Agu

Ray Tracing III. Wen-Chieh (Steve) Lin National Chiao-Tung University

Real-Time Volumetric Smoke using D3D10. Sarah Tariq and Ignacio Llamas NVIDIA Developer Technology

Ray Tracing through Viewing Portals

A simple OpenGL animation Due: Wednesday, January 27 at 4pm

CS 231. Basics of Computer Animation

Animation and Ray Tracing

Agenda. Introduction Curve implementation. Particle System. - Requirements -What are all those vectors? -Where should I put things?

Particle Systems: Theory and Practice. Ciara Belle CMSC498A Spring 2012

More Animation Techniques

ENHANCING THE CONTROL AND PERFORMANCE OF PARTICLE SYSTEMS THROUGH THE USE OF LOCAL ENVIRONMENTS. Abstract

Zero Launch Angle. since θ=0, then v oy =0 and v ox = v o. The time required to reach the water. independent of v o!!

CSE 167: Introduction to Computer Graphics Lecture #18: More Effects. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016

Animation. Keyframe animation. CS4620/5620: Lecture 30. Rigid motion: the simplest deformation. Controlling shape for animation

PHYSICALLY BASED ANIMATION

Navier-Stokes & Flow Simulation

Graphs, Search, Pathfinding (behavior involving where to go) Steering, Flocking, Formations (behavior involving how to go)

Modeling Cloth Using Mass Spring Systems

CGT 581 G Fluids. Overview. Some terms. Some terms

Youngho Kim CIS665: GPU Programming

CS559: Computer Graphics

Ray Tracing. Cornell CS4620/5620 Fall 2012 Lecture Kavita Bala 1 (with previous instructors James/Marschner)

Effects, part 5. Particle Playground (PB only) Overview of Particle Playground workflow

BCC Comet Generator Source XY Source Z Destination XY Destination Z Completion Time

the gamedesigninitiative at cornell university Lecture 12 2D Animation

Graphics for VEs. Ruth Aylett

Billboards!! A texture mapped polygon, which always faces the viewer

2.7 Cloth Animation. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter 2 123

Lecture 18 of 41. Scene Graphs: Rendering Lab 3b: Shader

Transcription:

Animation A broad Brush Computer Animation 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) Keyframing Keyframing How are we going to interpolate? Traditional animation technique Dependent on artist to generate key frames Additional, inbetween frames are drawn automatically by computer From The computer in the visual arts, Spalter, 1999

Linear Interpolation Nonlinear Interpolation Simple, but discontinuous velocity Smooth ball trajectory and continuous velocity, but loss of timing Easing Style or Accuracy? Interpolating time captures accuracy of velocity Squash and stretch replaces motion blur stimuli and adds life-like intent Adjust the timing of the inbetween frames. Can be automated by adjusting the stepsize of parameter, t.

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 Examples Inanimate video game objects 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 www.sodaplay.com

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 Andrew Butts 16

Introduction Typical Particle system animation routine ParticleSystem() 1. Animate a particle System 2. While animation not finished 3. Do Delete expired particles 4. Create new particles 5. Simulate Physics 6. Update particle attributes 7. Render particles Particle A particle is described by physical body attributes, such as: Mass, Position, Velocity, Acceleration, Color, Life time. 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

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(){ for(int i = 0; i <= MAX_PARTICLES; i++){ 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 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 Firewor k During the explosion phase, each particle has its own mass, velocity and acceleration attributes modified according to a random, radially centered speed component. Gravity Field 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 Forces 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 f = -9.81*(particle mass in Kg)*Y Drag f = -k*v Uniform Wind f = k Forces Simple 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 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 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 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. 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