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

Similar documents
CSE 682: Animation. Winter Jeff Walsh, Stephen Warton, Brandon Rockwell, Dustin Hoffman

Animation Essentially a question of flipping between many still images, fast enough

Water. Notes. Free surface. Boundary conditions. This week: extend our 3D flow solver to full 3D water We need to add two things:

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

MODELING AND HIERARCHY

COMP371 COMPUTER GRAPHICS

animation projects in digital art animation 2009 fabio pellacini 1

Shape modeling Modeling technique Shape representation! 3D Graphics Modeling Techniques

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

COS 116 The Computational Universe Laboratory 10: Computer Graphics

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

Final Exam CS 184: Foundations of Computer Graphics page 1 of 14 Fall 2016 Prof. James O Brien

COMP 175 COMPUTER GRAPHICS. Lecture 10: Animation. COMP 175: Computer Graphics March 12, Erik Anderson 08 Animation

Computer Animation Fundamentals. Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics

COS 116 The Computational Universe Laboratory 10: Computer Graphics

Beginners Guide Maya. To be used next to Learning Maya 5 Foundation. 15 juni 2005 Clara Coepijn Raoul Franker

6.837 Introduction to Computer Graphics Quiz 2 Thursday November 20, :40-4pm One hand-written sheet of notes allowed

Tangents. In this tutorial we are going to take a look at how tangents can affect an animation.

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

In this course we will need a set of techniques to represent curves and surfaces in 2-d and 3-d. Some reasons for this include

BONE CONTROLLER ASSET VERSION 0.1 REV 1

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

Blending & State Machines. CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2017

Advanced Texture-Mapping Curves and Curved Surfaces. Pre-Lecture Business. Texture Modes. Texture Modes. Review quiz

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

Animator Friendly Rigging Part 1

animation computer graphics animation 2009 fabio pellacini 1

Chapter 19- Object Physics

Animation. Itinerary. What is Animation? What is Animation? Animation Methods. Modeling vs. Animation Computer Graphics Lecture 22

MITOCW MIT6_172_F10_lec18_300k-mp4

Animation. Itinerary Computer Graphics Lecture 22

Pong in Unity a basic Intro

Name: SID: LAB Section:

CS770/870 Spring 2017 Animation Basics

CS770/870 Spring 2017 Animation Basics

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

Windows Movie Maker lets you edit videos from video and photo files. It is free from Microsoft.

Computer Graphics I Lecture 11

Tentti/Exam Midterm 2/Välikoe 2, December

Breathing life into your applications: Animation with Qt 3D. Dr Sean Harmer Managing Director, KDAB (UK)

COMPUTER ANIMATION 3 KEYFRAME ANIMATION, RIGGING, SKINNING AND CHARACTER ANIMATION. Rémi Ronfard, Animation, M2R MOSIG

Animator Friendly Rigging Part 3b

CMSC 425: Lecture 10 Skeletal Animation and Skinning

Animation. Representation of objects as they vary over time. Traditionally, based on individual drawing or photographing the frames in a sequence

Adobe Flash CS3 Reference Flash CS3 Application Window

Parametric curves. Reading. Curves before computers. Mathematical curve representation. CSE 457 Winter Required:

Outline. Introduction Surface of Revolution Hierarchical Modeling Blinn-Phong Shader Custom Shader(s)

AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO F ^ k.^

The exam begins at 5:10pm and ends at 8:00pm. You must turn your exam in when time is announced or risk not having it accepted.

Last Time? Inverse Kinematics. Today. Keyframing. Physically-Based Animation. Procedural Animation

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

1. New document, set to 5in x 5in, no bleed. Color Mode should be default at CMYK. If it s not, changed that when the new document opens.

Today. Parity. General Polygons? Non-Zero Winding Rule. Winding Numbers. CS559 Lecture 11 Polygons, Transformations

Introduction Ray tracing basics Advanced topics (shading) Advanced topics (geometry) Graphics 2010/2011, 4th quarter. Lecture 11: Ray tracing

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

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

Animation Lecture 10 Slide Fall 2003

Autodesk Fusion 360: Render. Overview

Game Programming with. presented by Nathan Baur

2D/3D Geometric Transformations and Scene Graphs

Silhouette Projects The Tools of Silhouette

Lahore University of Management Sciences. CS 452 Computer Graphics

Installing and Using Trackside Cameras Revised November 2008

Assignment 6: Ray Tracing

Announcements: Quiz. Animation, Motion Capture, & Inverse Kinematics. Last Time? Today: How do we Animate? Keyframing. Procedural Animation

Navier-Stokes & Flow Simulation

Homework 2 Questions? Animation, Motion Capture, & Inverse Kinematics. Velocity Interpolation. Handing Free Surface with MAC

CS GAME PROGRAMMING Question bank

Unity Game Development

Lighting and Shading

Animation and Ray Tracing

Character animation Christian Miller CS Fall 2011

CS Simple Raytracer for students new to Rendering

Simulation: Particle Systems

CS 352: Computer Graphics. Hierarchical Graphics, Modeling, And Animation

Last Time? Animation, Motion Capture, & Inverse Kinematics. Today. Keyframing. Physically-Based Animation. Procedural Animation

Computer Animation I. Kerlow sections 2.4, 10.1, 6.3, 6.6 and chapter 7. Optional BG reading: Kerlow chapter 1.

Animation, Motion Capture, & Inverse Kinematics. Announcements: Quiz

Animation. CS 465 Lecture 22

Flames in Particle Flow

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

Homework #2. Hidden Surfaces, Projections, Shading and Texture, Ray Tracing, and Parametric Curves

Splines. Parameterization of a Curve. Curve Representations. Roller coaster. What Do We Need From Curves in Computer Graphics? Modeling Complex Shapes

Navier-Stokes & Flow Simulation

Mount Points Mount Points is a super simple tool for connecting objects together and managing those relationships.

Project 1: Particle System The Animation of Natural Phenomena Due 10/18

Week 5: Assignment: Animation

Homework #2. Shading, Projections, Texture Mapping, Ray Tracing, and Bezier Curves

Now-Crowd Billboards User Manual

Spatial Data Structures. Steve Rotenberg CSE168: Rendering Algorithms UCSD, Spring 2017

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

Character Animation COS 426

Last Time? Animation, Motion Capture, & Inverse Kinematics. Today. Keyframing. Physically-Based Animation. Procedural Animation

Patterning Math Lab 4a

Topics in Computer Animation

Real-Time Shadows. MIT EECS 6.837, Durand and Cutler

TDA361/DIT220 Computer Graphics, January 15 th 2016

Platformer Tutorial 8 - Adding Mr.Green and Character Animation. Last month. Character FX

Chapter Adding 1- T Mo he tio B n le to nde Yo r ur Inte Scerfac ne e Landscape Scene Stormy Night.mp4 End 200 Default Animation frame 1 Location

Creating animation rigs that solve problems, are fun to use, and don t cause nervous breakdowns.

Transcription:

Agenda Introduction Curve implementation - Requirements -What are all those vectors? -Where should I put things? Particle System - Requirements -What should I implement? - Suggestions - Cool forces

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

Introduction How to integrate with my model? just replace sample.cpp with your model better to do this sooner than later Modeler View vs. Curves View Graph Widget Interface

Spline Curves Requirements Bezier curve can linearly interpolate in cases where there are not enough control points ( < 4 or for the last couple in your set ) B-spline Catmull-Rom curve must be a function! sample solution is not perfectly correct; you must do at least as well as sample.

Curve Implementation What are all those vectors? In any specific curveevaluator class ptvctrlpts: a collection of control points that you specify in the curve editor ptvevaluatedcurvepts: a collection of evaluated curve points that you return from the function calculated using the curve type s formulas fanilength: maximum time that a curve is defined bwrap: a flag indicating whether or not the curve should be wrapped

Curve Implementation Vector Reference For those of you not familiar with C++ vectors: A vector is a standard C++ data structure that acts like a dynamically resizable array (like an ArrayList in Java) A nice reference for vectors (one of many online): http://www.cplusplus.com/reference/stl/vector/ Vectors often use iterators, which you can read about with some simple examples here: http://www.cppreference.com/wiki/stl/iterators

Curve Implementation Where should I put things? Create curve evaluator classes for each that inherit from CurveEvaluator Bezier B-spline Catmull-Rom In GraphWidget class Change the skeleton to call your new constructors in the GraphWidget class. Right now all the UI is set up for your new curve types, but they all call the constructor for the LinearCurveEvaluator class.

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 Two distinct forces Distinct may mean forces whose values are calculated with different equations (gravity and drag are distinct because gravity eq is of form f=ma, where drag is defined in terms of a drag coefficient and velocity) Alternatively (and better): distinct may mean that one force is a unary force and another is a n-ary force or spatially driven force Collision detection With a sphere in the scene With one additional 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. - Note the provided pseudo-code and getmodelviewmatrix() on the animator project page 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?

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 C 0, C 1, or C 2 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 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

Animating well vs. well just animating Above all else, keep it simple: You have limited time You have a limited program (well, unless you implement a lot of bells and whistles) If you make realistic goals, then meet them, you can use the extra time to add more shots and eye candy. Complicated is not necessarily better

Animating well vs. well just animating Have a plan Though it seems simple, it s a lot easier to plan and iterate your animation on paper Even if you don t draw, it s much easier to sketch out your key poses on paper, then implement them in animator If you decide a pose or shot doesn t work on paper, you can make a new one in a couple minutes. If you find out a shot doesn t work after it s rendered, you have to get rid of potentially hours worth of work

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 Don t forget you can change the animation length of your shots

Animating well Music! 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.

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

Animating well Use the animation principles See John Lasseter s article on animation principles See the lecture notes on animation principles Remember, well animated grey models are a lot more entertaining than poorly animated complicated ones. That s why the first animated shorts ever (The Adventures of Andre and Wally B, Knick Knack, etc.) are still entertaining

Creating Your Artifact Choice of curve types Bezier Curves Recall the animation of a bouncing ball When the ball hits the ground, the curve describing its position should have a C 1 discontinuity Without C 1 discontinuity here, the animation will look wrong Catmull-Rom is usually the preferred curve choice but unless your project supports the option to add C 1 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.

Any Questions? Email the staff! Cse457-staff@cs.washington.edu Post on the discussion board (linked from the project page)