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

Slides:



Advertisements
Similar presentations
Animation Marco Gillies. Computer Animation Making things move A key aspect of computer graphics Non-realtime for films Realtime for virtual worlds and.
Advertisements

CS0007: Introduction to Computer Programming Introduction to Classes and Objects.
Lecture 2. A Day of Principles The principle of virtual work d’Alembert’s principle Hamilton’s principle 1 (with an example that applies ‘em all at the.
Beams and Frames.
Animation Following “Advanced Animation and Rendering Techniques” (chapter 15+16) By Agata Przybyszewska.
EARS1160 – Numerical Methods notes by G. Houseman
1Notes  Assignment 0 is being marked  Textbook reference for arc-length parameterization:  Section 3.2.
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”
1Notes  Assignment 0 marks should be ready by tonight (hand back in class on Monday)
1Notes  Reference  Witkin and Baraff, “Physically Based Modelling” course, SIGGRAPH 2001  Link on the course website.
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves Jinxiang Chai.
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.
Modelling. Outline  Modelling methods  Editing models – adding detail  Polygonal models  Representing curves  Patched surfaces.
Animation. Outline  Key frame animation  Hierarchical animation  Inverse kinematics.
Midterm Review CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004.
Introduction to 3D Beginner: the class Instructor : Hee Holmen.
Recursion Chapter 7. Chapter 7: Recursion2 Chapter Objectives To understand how to think recursively To learn how to trace a recursive method To learn.
1cs426-winter-2008 Notes. 2 Velocity fields  Velocity field could be a combination of pre-designed velocity elements E.g. explosions, vortices, …  Or.
SE320: Introduction to Computer Games Week 8: Game Programming Gazihan Alankus.
Animator Project CSE 557. In this project… Create your own hierarchical model Create keyframe animations Create smooth keyframe animations Create particle.
COMP 175: Computer Graphics March 24, 2015
CS 450: COMPUTER GRAPHICS QUATERNIONS SPRING 2015 DR. MICHAEL J. REALE.
CS559: Computer Graphics Lecture 38: Animation Li Zhang Spring 2008 Slides from Brian Curless at U of Washington.
COMP 175 | COMPUTER GRAPHICS Remco Chang1/ Introduction Lecture 01: Introduction COMP 175: Computer Graphics January 15, 2015.
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.
CS 445 / 645 Introduction to Computer Graphics Lecture 23 Bézier Curves Lecture 23 Bézier Curves.
Implementing Scene Graphs, CSG Trees Glenn G. Chappell U. of Alaska Fairbanks CS 481/681 Lecture Notes Monday, January 26, 2004.
Computer Graphics 2 In the name of God. Outline Introduction Animation The most important senior groups Animation techniques Summary Walking, running,…examples.
Animator Help Session. Agenda Introduction Curve implementation - Requirements - What are all those vectors? - Where should I put things? Particle System.
Curves. First of all… You may ask yourselves “What did those papers have to do with computer graphics?” –Valid question Answer: I thought they were cool,
Kinematics Jehee Lee Seoul National University. Kinematics How to animate skeletons (articulated figures) Kinematics is the study of motion without regard.
Maths & Technologies for Games Animation: Practicalities CO3303 Week 3.
Project 1: Animation System Assigned: 01/17/06 Due: 01/31/06.
CO1301: Games Concepts Dr Nick Mitchell (Room CM 226) Material originally prepared by Gareth Bellaby.
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 고려대학교 컴퓨터 그래픽스 연구실.
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell Particle Systems.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Physics for Games Spring 2012.
Games Development Game Architecture: Entities CO2301 Games Development 1 Week 22.
Ray Tracer Spring 2008 Help Session. Outline Project Web Resources What do you have to do for this project? Ray Class Isect Class Requirements Tricks.
Point Sprites Course Information CVG: Programming 4 My Name: Mark Walsh Website: Recommended.
AP Physics Monday Standards: 2a1,2,3 add, subtract, and resolve displacement and velocity vectors Objective: SWBAT apply basic mathematical operations.
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: 
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves Jinxiang Chai.
CSCE 441 Computer Graphics: Keyframe Animation/Smooth Curves Jinxiang Chai.
CS 450: COMPUTER GRAPHICS ANIMATION SPRING 2015 DR. MICHAEL J. REALE.
CSCE 441: Keyframe Animation/Smooth Curves (Cont.) Jinxiang Chai.
CSCE 441: Keyframe Animation/Smooth Curves (Cont.) Jinxiang Chai.
Animator Help Session November 20 th, 2002,. Agenda Introduction Curve implementation - What are all those vectors? - Where should I put things? Particle.
Animation Animation is about bringing things to life Technically: –Generate a sequence of images that, when played one after the other, make things move.
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 20 – C++ Subclasses and Inheritance.
LECTURE 16: BEYOND LINEARITY PT. 1 March 28, 2016 SDS 293 Machine Learning.
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.
3D Animation 3. Animation Dr. Ashraf Y. Maghari Information Technology Islamic University of Gaza Ref. Book: The Art of Maya.
Introduction to Parametric Curve and Surface Modeling.
Introduction to 3-D Viewing Glenn G. Chappell U. of Alaska Fairbanks CS 381 Lecture Notes Monday, October 27, 2003.
Computer Animation cgvr.korea.ac.kr.
CS 445 / 645 Introduction to Computer Graphics
CSC 221: Computer Programming I Fall 2005
Animator Help Session.
Assigned: Thursday, May 13th
Particle systems Good animation principles Creating your artifact
Animator Help Session Nov 24th, :30am.
Agenda Introduction Curve implementation - Requirements
Animator Help Session May 18th, :00 May 19th, :00.
Computer Graphics Lecture 15.
Assigned: Thursday, May 12th Due: Wednesday, May 25th
Games Development Game Architecture: Entities
Animator Help Session May 21st, :30 May 22nd, :30.
Presentation transcript:

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): Vectors often use iterators, which you can read about with some simple examples here:

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? the staff! Post on the discussion board (linked from the project page)