Particle systems Good animation principles Creating your artifact

Slides:



Advertisements
Similar presentations
Animation Following “Advanced Animation and Rendering Techniques” (chapter 15+16) By Agata Przybyszewska.
Advertisements

1cs533d-winter-2005 Computer Animation Robert Bridson (preview of CPSC 426)
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”
Game Physics Chris Miles. The Goal To learn how to create game objects with realistic physics models To learn how to simulate aspects of reality in order.
Animation. Outline  Key frame animation  Hierarchical animation  Inverse kinematics.
1cs426-winter-2008 Notes. 2 Velocity fields  Velocity field could be a combination of pre-designed velocity elements E.g. explosions, vortices, …  Or.
Lecture VII Rigid Body Dynamics CS274: Computer Animation and Simulation.
CS 450: COMPUTER GRAPHICS QUATERNIONS SPRING 2015 DR. MICHAEL J. REALE.
CSC418 Computer Graphics n Animation Principles n Keyframe Animation.
Week 5 - Wednesday.  What did we talk about last time?  Project 2  Normal transforms  Euler angles  Quaternions.
SKM 4200 Computer Animation Chapter 4: Animation (3D Computer Animation – Part 2)
Animator Help Session. Agenda Introduction Curve implementation - Requirements - What are all those vectors? - Where should I put things? Particle System.
Kinematics Jehee Lee Seoul National University. Kinematics How to animate skeletons (articulated figures) Kinematics is the study of motion without regard.
Sec. 1-4 Day 2 HW pg (42-46, 53, 62-63, 67, 71-72)
Multimedia System and Networking UTD Slide- 1 University of Texas at Dallas B. Prabhakaran Rigging.
Project 1: Animation System Assigned: 01/17/06 Due: 01/31/06.
Character Setup In addition to rigging for character models, rigging artists are also responsible for setting up animation controls for anything that is.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 Computer Animation 고려대학교 컴퓨터 그래픽스 연구실.
Animator Help Session. Surface of Revolution You will write OpenGL code to draw a surface by rotating a curve. Each vertex must have an appropriate: 
CS 450: COMPUTER GRAPHICS ANIMATION SPRING 2015 DR. MICHAEL J. REALE.
Skeletal Animation and Skinning A (hardware friendly) software approach By: Brandon Furtwangler.
Agenda Introduction Curve implementation - Requirements - What are all those vectors? - Where should I put things? Particle System - Requirements - What.
Animator Help Session November 20 th, 2002,. Agenda Introduction Curve implementation - What are all those vectors? - Where should I put things? Particle.
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 20 – C++ Subclasses and Inheritance.
Enhancing JavaScript Using Application Programming Interfaces (APIs), Lecture #3.
CGDD 4003 Character Animation. The Skeletal Hierarchy (aka the “rig”) Based on the concept of bones Each bone has exactly one parent Each bone has a transform.
Component Base Class Rationale
Game Development with Unity3D
Computer Graphics.
View Controllers In the Model-View-Controller (MVC) design pattern, a controller object provides the custom logic needed to bridge the application’s data.
Where are we ? Setup Sprites Input Collision Drawing Sprites
Transformations 5 University of British Columbia
Computer Animation cgvr.korea.ac.kr.
UW Extension Certificate Program in Game Development 2nd quarter: Advanced Graphics Animation.
CSE687 - Object Oriented Design class notes Survey of the C++ Programming Language Jim Fawcett Spring 2004.
Design and Layout (part two)
Animator Help Session.
3D Transformations Source & Courtesy: University of Wisconsin,
Assigned: Thursday, May 13th
CMSC201 Computer Science I for Majors Lecture 11 – Program Design
Week 4 Object-Oriented Programming (1): Inheritance
Introduction to Events
Learning Java with Alice 3.0 Game Design Kathy Bierscheid
Reading Assignments Principles of Traditional Animation Applied to 3D Computer Animation, by J. Lasseter, Proc. of ACM SIGGRAPH 1987 Computer Animation:
OOP Paradigms There are four main aspects of Object-Orientated Programming Inheritance Polymorphism Abstraction Encapsulation We’ve seen Encapsulation.
Object-Oriented Programming
Object Oriented Practices
Use Case Model Use case diagram – Part 2.
UMBC Graphics for Games
CSCE 441: Keyframe Animation/Smooth Curves (Cont.)
Strategy and Template Method Patterns, Single User Protection
Animator Help Session Nov 24th, :30am.
Agenda Introduction Curve implementation - Requirements
Animator Help Session May 18th, :00 May 19th, :00.
Computer Graphics Lecture 15.
Applying Use Cases (Chapters 25,26)
Assigned: Thursday, May 12th Due: Wednesday, May 25th
Introduction to Parametric Curve and Surface Modeling
11. MVC SE2811 Software Component Design
Chapter 14 Shading Models.
11. MVC SE2811 Software Component Design
Games Development Game Architecture: Entities
Chapter 8 - Design Strategies
So you want to be a Game Designer
Jim Fawcett CSE687 – Object Oriented Design Spring 2014
Computer Graphics Matrix Hierarchies / Animation
Animator Help Session May 21st, :30 May 22nd, :30.
Put the Lesson Title Here
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Constructing a Test We now know what makes a good question:
Presentation transcript:

Particle systems Good animation principles Creating your artifact Some extra credit ideas !

Agenda Particle System - Requirements - What should I implement? - Suggestions - Cool forces

Agenda Animating well vs. well… just animating Creating your artifact Timing! Music Light Lasseter’s animation principles Creating your artifact Selecting a curve type Compositing

Particle System requirements Particle System class Should have pointers to all particles and a marching variable (time) for simulation If you have two separate simulations (say, cloth sim and particles that respond to viscous drag) you may want to make that distinction here (as well as in your force and particle implementation) Solver In the skeleton, this actually exists within the Particle System class Particles

Particle System requirements At least one force Collision detection With one primitive of your choice Restitution coefficient must be slider controlled

Particle System What should I implement? Canonical components Constructor Destructor etc Simulation functions drawParticles() startSimulation() computeForcesAndUpdateParticles() stopSimulation()

Particle System What should I implement? Particle struct or class you may have several of these if you have multiple types of simulations If this is the case, take advantage of inheritance Force class An elegant implementation would include a generic Force class and a variety of distinct forces that inherit from it *Note: I stress inheritance because it will make your implementation easier (and less messy) and in general will make your life easier. If the TA that grades your project must look at your code, clean object oriented code is a great headache-prevention-tool.

Particle System Embedding in your hierarchy Need to find World Coordinates of Particles - Model View Matrix - Inverse Camera Transformation - Generate world coordinate for particles by undoing camera transformations to the point you want to launch from. Euler Method Hooking up your particle System

Particle System Cool Forces Particles in a lattice Cloth simulation Deformable objects Flocking Will require multiple forces: Attractive force that affects far away particles Repulsive force that affects nearby particles What else?

Animating well vs. well… just animating Timing! Timing is VERY, VERY important Consider timing before you bother to get specific about joint rotations or object positions

Animating well vs. well… just animating Good timing

Animating well Music! Good sound Sound and music can greatly enhance the cohesion of your artifact If your artifact idea includes a theme or stylization, it can be very effective to time your animation with events in the theme music. Good sound

Animating well Light! Light vs. No light Like sound, light is VERY VERY important compositionally Anything you can do to be creative with lighting will help Light vs. No light

Creating Your Artifact Choice of curve types Catmull-Rom is usually the preferred curve choice… but unless your project supports the option to add C1 discontinuity at will, you might find yourself trying to fight the Catmull-Rom to create pauses and other timing goodies

Creating Your Artifact Compositing Recommended that you break your intended artifact up into shorter clips combining them all in the end. This will make your life easier for many reasons: Splitting up work is straightforward Changing camera angles is GOOD for a composition You can incrementally complete your artifact Adobe Premiere Play around with it, check the website for some details on how to use it. The user interface is pretty intuitive.

Extra Credit ideas Tension control for Catmull-Rom Interpolating splines are cool because keyframing the parameter values that you want is more intuitive… But what about the time instances not keyed? Without control of curve tension, you may not get the parameter values that you would really like, and your animation could suffer Allow control points to have C0, C1, or C2 continuity This can be VERY helpful in creating a good animation Initialize particle velocity with velocity of model hierarchy node to which it is attached This is fairly easy and will make your particle system noticeably more realistic

Extra Credit ideas Billboarding Baking Adding support for sprites (billboarding) can DRASTICALLY increase the aesthetic quality of your simulation Additional benefit: very easy to ‘skin’ particles and make multiple instance of same particle look unique Baking A must for complicated simulations or for particle systems with a lot of particles

Extra Credit ideas Better collision detection Better forces Lens flare Most animator artifacts suffer from lack of realistic looking lighting Ideally, this problem would be solved with ray tracing or photon mapping Since these are probably not options, lens flare is an alternative way to give the impression of interesting lighting

Any Questions? Email the staff! csep557-staff@cs.washington.edu