CS 559 Computer Graphics Lecture 36 Animation Li
- Slides: 61
CS 559: Computer Graphics Lecture 36: Animation Li Zhang Spring 2008 Slides from Brian Curless at U of Washington
Today • Particle Systems, Cartoon animation, ray tracing • Reading – (Optional) John Lasseter. Principles of traditional animation applied to 3 D computer animation. Proceedings of SIGGRAPH (Computer Graphics) 21(4): 35 -44, July 1987. http: //portal. acm. org/citation. cfm? id=37407 – (Optional) WILLIAM T. REEVES, ACM Transactions on Graphics, Vol. 2, No. 2, April 1983 http: //portal. acm. org/citation. cfm? id=357320
Particle system diff. eq. solver We can solve the evolution of a particle system again using the Euler method: void Euler. Step(Particle. System p, float Delta. T){ Particle. Deriv(p, temp 1); /* get deriv */ Scale. Vector(temp 1, Delta. T) /* scale it */ Particle. Get. State(p, temp 2); /* get state */ Add. Vectors(temp 1, temp 2); /* add -> temp 2 */ Particle. Set. State(p, temp 2); /* update state */ p->t += Delta. T; /* update time */ }
Bouncing off the walls • Handling collisions is a useful add-on for a particle simulator. • For now, we’ll just consider simple point-plane collisions. N x v P A plane is fully specified by any point P on the plane and its normal N.
Collision Detection How do you decide when you’ve made exact contact with the plane? N x v P
Normal and tangential velocity To compute the collision response, we need to consider the normal and tangential components of a particle’s velocity. N x P v v
Collision Response v’ v before after The response to collision is then to immediately replace the current velocity with a new velocity: The particle will then move according to this velocity in the next timestep.
Collision without contact • In general, we don’t sample moments in time when particles are in exact contact with the surface. • There a variety of ways to deal with this problem. • A simple alternative is to determine if a collision must have occurred in the past, and then pretend that you’re currently in exact contact.
Very simple collision response • How do you decide when you’ve had a collision? N x 1 x 3 v 1 v 3 P x 2 v 2 A problem with this approach is that particles will disappear under the surface. Also, the response may not be enough to bring a particle to the other side of a wall.
More complicated collision response • Another solution is to modify the update scheme to: – detect the future time and point of collision – reflect the particle within the time-step N x v P
Generate Particles • Particle Attributes – initial position, – initial velocity (both speed and direction), – initial size, – initial color, – initial transparency, – shape, – lifetime. WILLIAM T. REEVES, ACM Transactions on Graphics, Vol. 2, No. 2, April 1983
Generate Particles • Particle Attributes – initial position, – initial velocity (both speed and direction), – initial size, – initial color, – initial transparency, – shape, – lifetime. WILLIAM T. REEVES, ACM Transactions on Graphics, Vol. 2, No. 2, April 1983
Generate Particles • Particle Attributes – initial position, – initial velocity (both speed and direction), – initial size, – initial color, – initial transparency, – shape, – lifetime. WILLIAM T. REEVES, ACM Transactions on Graphics, Vol. 2, No. 2, April 1983
Generate Particles • Initial Particle Distribution • Particle hierarchy, for example – Skyrocket : firework – Clouds : water drops
Throwing a ball from a robot arm • Let’s say we had our robot arm example and we wanted to launch particles from its tip. • How would we calculate initial speed? Q=R(theta)*T 1*R(phi)*T 2*R(psi)*P We want d. Q/dt
Principles of Animation • Goal: make characters that move in a convincing way to communicate personality and mood. • Walt Disney developed a number of principles. – ~1930 • Computer graphics animators have adapted them to 3 D animation. John Lasseter. Principles of traditional animation applied to 3 D computer animation. Proceedings of SIGGRAPH (Computer Graphics) 21(4): 35 -44, July 1987.
Principles of Animation • The following are a set of principles to keep in mind: 1. Squash and stretch 2. Staging 3. Timing 4. Anticipation 5. Follow through 6. Secondary action 7. Straight-ahead vs. pose-to-pose vs. blocking 8. Arcs 9. Slow in, slow out 10. Exaggeration 11. Appeal
Squash and stretch • Squash: flatten an object or character by pressure or by its own power. • Stretch: used to increase the sense of speed and emphasize the squash by contrast. • Note: keep volume constant! • • http: //www. siggraph. org/education/materials/Hyper. Graph/animation/character_ animation/principles/squash_and_stretch. htm http: //www. siggraph. org/education/materials/Hyper. Graph/animation/character_ animation/principles/bouncing_ball_example_of_slow_in_out. htm
Squash and stretch (cont’d)
Squash and stretch (cont’d)
Anticipation • An action has three parts: anticipation, action, reaction. • Anatomical motivation: a muscle must extend before it can contract. • Watch: bugs-bunny. virtualdub. new. mpg • Prepares audience for action so they know what to expect. • Directs audience's attention.
Anticipation (cont’d) • Amount of anticipation (combined with timing) can affect perception of speed or weight.
Arcs • Avoid straight lines since most things in nature move in arcs.
Slow in and slow out • An extreme pose can be emphasized by slowing down as you get to it (and as you leave it). • In practice, many things do not move abruptly but start and stop gradually.
Exaggeration • Get to the heart of the idea and emphasize it so the audience can see it.
Exaggeration • Get to the heart of the idea and emphasize it so the audience can see it.
Appeal • • The character must interest the viewer. It doesn't have to be cute and cuddly. Design, simplicity, behavior all affect appeal. Example: Luxo, Jr. is made to appear childlike. http: //www. youtube. com/watch? v=HDu. RXvt. Im. Q 0&feature=related
Appeal (cont’d) • Note: avoid perfect symmetries.
Appeal (cont’d) • Note: avoid perfect symmetries.
Ray Tracing Reading: Shirley Ch 10. 1 --- 10. 8 Slides are from Ravi Ramamoorthi’s graphics class at Columbia U
Effects needed for Realism Image courtesy Paul Heckbert 1983 § Reflections (Mirrors and Glossy) § Transparency (Water, Glass) § Interreflections (Color Bleeding) § (Soft) Shadows § Complex Illumination (Natural, Area Light) § Realistic Materials (Velvet, Paints, Glass) § And many more
Ray Tracing § Different Approach to Image Synthesis as compared to Hardware pipeline (Open. GL) § Open. GL : Object by Object § Ray Tracing : Pixel by Pixel § Advantage: § Easy to compute shadows/transparency/etc § Disadvantage: § Slow (in early days)
Basic Version: Ray Casting Virtual Viewpoint Virtual Screen Objects Ray Multiple misses intersections: all object: objects: shade Use Pixel closest using colored one color, black (aslights, doesmaterials Open. GL)
Ray Casting Produce same images as with Open. GL § Visibility per pixel instead of Z-buffer § Find nearest object by shooting rays into scene § Shade it as in standard Open. GL Section 10. 1 -10. 2 in text (we show visually, omitting math)
Comparison to hardware scan-line § Per-pixel evaluation, per-pixel rays (not scan-convert each object). On face of it, costly § But good for walkthroughs of extremely large models (amortize preprocessing, low complexity) § More complex shading, lighting effects possible
Shadows Light Source Virtual Viewpoint Virtual Screen Objects Shadow ray to light is blocked: unblocked: object in shadow visible 10. 5 in textbook
Shadows: Numerical Issues • Numerical inaccuracy may cause intersection to be below surface (effect exaggerated in figure) • Causing surface to incorrectly shadow itself • Move a little towards light before shooting shadow ray
Mirror Reflections/Refractions Virtual Viewpoint Virtual Screen Objects Generate reflected ray in mirror direction, 10. 6 in textbook Get reflections and refractions of objects
Recursive Ray Tracing (Core Idea) For each pixel § Trace Primary Eye Ray, find intersection § Trace Secondary Shadow Ray(s) to all light(s) § Color = Visible ? Illumination Model : 0 ; Recursive function Calls § Trace Reflected Ray § Color += reflectivity * Color of reflected ray § Trace Refracted Ray § Color += transparency * Color of refracted ray Also see section 10. 4 in text
Problems with Recursion § Reflection rays may be traced forever § Generally, set maximum recursion depth
Turner Whitted 1980
Effects needed for Realism • • • (Soft) Shadows Reflections (Mirrors and Glossy) Transparency (Water, Glass) Interreflections (Color Bleeding) Complex Illumination (Natural, Area Light) Realistic Materials (Velvet, Paints, Glass) Discussed in this lecture Not discussed so far but possible with distribution ray tracing (10. 11) Hard (but not impossible) with ray tracing; radiosity methods
How to implement? § Ray parameterization § Ray-Surface Intersection
Ray/Object Intersections § Heart of Ray Tracer § One of the main initial research areas § Optimized routines for wide variety of primitives § Various types of info § Shadow rays: Intersection/No Intersection § Primary rays: Point of intersection, material, normals § Texture coordinates Section 10. 3
Example § Sphere § How to decide there is an intersection? § Triangle § How to decide the intersection is inside? § Polygon § How to decide the intersection is inside? § How about an ellipsoid?
Ray-Tracing Transformed Objects We have an optimized ray-sphere test § But we want to ray trace an ellipsoid… Solution: Ellipsoid transforms sphere § Apply inverse transform to ray, use ray-sphere Section 10. 8 of text
Acceleration Testing each object for each ray is slow § Faster Intersections § Optimized Ray-Object Intersections § Fewer Intersections Section 10. 9 goes into more detail
Acceleration Structures Bounding boxes (possibly hierarchical) If no intersection bounding box, needn’t check objects Bounding Box Ray Spatial Hierarchies (Oct-trees, kd trees, BSP trees)
Octtree
K-d tree
Acceleration Structures: Grids
Raytracing on Graphics Hardware § Modern Programmable Hardware general streaming architecture § Can map various elements of ray tracing § Kernels like eye rays, intersect etc. § In vertex or fragment programs § Convergence between hardware, ray tracing [Purcell et al. 2002, 2003] http: //graphics. stanford. edu/papers/photongfx
Outline § History § Basic Ray Casting (instead of rasterization) § Comparison to hardware scan conversion § Shadows / Reflections (core algorithm) § Ray-Surface Intersection § Optimizations § Current Research Section 10 in text
Ray Tracing: History § Appel 68 § Whitted 80 [recursive ray tracing] § Landmark in computer graphics § Lots of work on various geometric primitives § Lots of work on accelerations § Current Research § Real-Time raytracing (historically, slow technique) § Ray tracing architecture
Outline § History § Basic Ray Casting (instead of rasterization) § Comparison to hardware scan conversion § Shadows / Reflections (core algorithm) § Ray-Surface Intersection § Optimizations § Current Research
Outline § History § Basic Ray Casting (instead of rasterization) § Comparison to hardware scan conversion § Shadows / Reflections (core algorithm) § Ray-Surface Intersection § Optimizations § Current Research
Outline § History § Basic Ray Casting (instead of rasterization) § Comparison to hardware scan conversion § Shadows / Reflections (core algorithm) § Ray-Surface Intersection § Optimizations § Current Research
Outline § History § Basic Ray Casting (instead of rasterization) § Comparison to hardware scan conversion § Shadows / Reflections (core algorithm) § Ray-Surface Intersection § Optimizations § Current Research
Interactive Raytracing § Ray tracing historically slow § Now viable alternative for complex scenes § Key is sublinear complexity with acceleration; need not process all triangles in scene § Allows many effects hard in hardware § Open. RT project real-time ray tracing (http: //www. openrt. de)
- Traditional animation vs computer animation
- Keyframe animation in computer graphics
- Animation hardware tools
- Graphics monitors and workstations in computer graphics
- 3d viewing devices in computer graphics ppt
- Ee 559
- Cs 559
- Cs 559 uw madison
- Cs 559
- G&l
- Digital graphics and animation
- Java gui animation
- 01:640:244 lecture notes - lecture 15: plat, idah, farad
- Karl sims galapagos
- Direct motion specification
- What is path based animation
- Computer security 161 cryptocurrency lecture
- Computer aided drug design lecture notes
- Architecture lecture notes
- Isa definition computer
- Angel
- Types of projection in computer graphics
- Plasma panel in computer graphics
- Interior and exterior clipping in computer graphics
- Shear transformation in computer graphics
- Acos glsl
- Scan conversion of ellipse
- Rigid body definition
- Region filling in computer graphics
- Starburst method in computer graphics
- Polygon filling algorithm in computer graphics
- Raster scan display and vector scan display
- Computer graphics
- What is a line in computer graphics
- Cs 418 interactive computer graphics
- Glcreatebuffer
- Depth sorting method in computer graphics
- Achromatic light in computer graphics
- What is interactive input
- Uniform scaling in computer graphics
- Uniform scaling in computer graphics
- Orthogonal projection in computer graphics
- Logical input devices in computer graphics
- Fundamentals of computer graphics
- Polygon clipping in computer graphics ppt
- Dda algorithm in computer graphics ppt
- Dda in computer graphics
- In two dimensional viewing system have
- Primitive instancing in computer graphics
- Scan conversion in computer graphics
- Region filling and clipping in computer graphics
- Utah teapot vertex data
- Thick primitives in computer graphics
- Interaction in computer graphics
- Computer graphics
- Rendering pipeline in computer graphics
- Direct use of line equation in computer graphics
- Srgp in computer graphics
- What is translation in computer graphics
- Gupta sproull algorithm
- Uniform scaling in computer graphics
- Computer