SH1. SIGGRAPH '97 COURSE NOTES. PHYSICALLY BASED MODELING.
Dynamics in Maya. Gary Monheit. Alias | Wavefront ...
Dynamics in Maya
Gary Monheit Alias | Wavefront
SIGGRAPH ’97 COURSE NOTES
SH1
PHYSICALLY BASED MODELING
Dynamics in Maya
•
Overall Requirements
•
Architecture and Features
•
Animations
SIGGRAPH ’97 COURSE NOTES
SH2
PHYSICALLY BASED MODELING
Overall Requirements •
Why Dynamics?
•
Problems with traditional animation techniques
•
Kinds of dynamics problems
•
Requirements for software architecture
SIGGRAPH ’97 COURSE NOTES
SH3
PHYSICALLY BASED MODELING
Why Dynamics?
SIGGRAPH ’97 COURSE NOTES
SH4
PHYSICALLY BASED MODELING
Problems with traditional animation •
Hard to keyframe
•
Rendered polygons don’t give desired effects
•
Amorphous effects hard to achieve
•
Lacks high−level control, simulation
•
Lacks procedural control
SIGGRAPH ’97 COURSE NOTES
SH5
PHYSICALLY BASED MODELING
Kinds of dynamics problems Particles • • • • •
Contain a set of points in global space with attributes Affected by dynamic solver Created at either object creation time or by emitters Handle birth and death Support a variety of rendering techniques
Soft Bodies • •
Geometry with points updated by a particle object Superset of all particle features
Rigid Bodies • •
Geometry with fixed topology and points Affected by collisions, constraints, and external forces
SIGGRAPH ’97 COURSE NOTES
SH6
PHYSICALLY BASED MODELING
Requirements for software architecture •
Integrated
•
Extensible
•
Reusable
•
Tweakable
•
Support Relationships
SIGGRAPH ’97 COURSE NOTES
SH7
PHYSICALLY BASED MODELING
Integrated Maya as scene object architecture • Nodes • Attributes • Connections Keyframing • Any scalar attributes • 3D motion of non−dynamic objects • Keyframe editors are familiar to animators Layered procedural animation • Output from dynamics can be input to other nodes • Outputs from other nodes can be input to dynamics Rendering • Rendered within Maya or exported to other renderer • Software rendering (volumetric) • Hardware rendering (openGL)
SIGGRAPH ’97 COURSE NOTES
SH8
PHYSICALLY BASED MODELING
Extensible •
Maya embedded language (Mel)
•
Parameter driven: attributes
•
ASCII scene file format
SIGGRAPH ’97 COURSE NOTES
SH9
PHYSICALLY BASED MODELING
Reusable •
Layered scenes with geometry and effects
•
Create your own clipFX with Mel
SIGGRAPH ’97 COURSE NOTES
SH10
PHYSICALLY BASED MODELING
Tweakable Attributes are modifiable • • • •
Keyframes Expressions Connect to other nodes Add user−defined attributes
SIGGRAPH ’97 COURSE NOTES
SH11
PHYSICALLY BASED MODELING
Relationships •
Object−to−object relationships
•
Attribute−to−attribute relationships
SIGGRAPH ’97 COURSE NOTES
SH12
PHYSICALLY BASED MODELING
Dynamics in Maya
•
Overall Requirements
•
Architecture and Features
•
Animations
SIGGRAPH ’97 COURSE NOTES
SH13
PHYSICALLY BASED MODELING
Architecture & Features •
Maya Architecture
•
Dynamic Architecture
•
Rendering
•
Expressions
•
Integrated Dynamics
SIGGRAPH ’97 COURSE NOTES
SH14
PHYSICALLY BASED MODELING
Maya Architecture (part 1) •
Nodes
•
Attributes
•
Connections
SIGGRAPH ’97 COURSE NOTES
SH15
PHYSICALLY BASED MODELING
Maya Architecture (part 2) • Transforms and Shapes •
DAG: Directed Acyclic Graph
•
The "object" is really the transform plus the shape(s)
SIGGRAPH ’97 COURSE NOTES
SH16
PHYSICALLY BASED MODELING
Dynamics Architecture •
Particles
• • • •
Fields Emitters Collision Models Particle Collision Events
•
Controllers
•
Connectables and Connections
• •
Soft Bodies Springs
•
Rigid Bodies
SIGGRAPH ’97 COURSE NOTES
SH17
PHYSICALLY BASED MODELING
Particles •
A particle object is a particle system
•
Per−particle (array) attributes vs. scalar attributes
•
User−defined attributes
•
Particles act independently
•
No particle−to−particle collisions
•
What affects particles? • Fields • Springs • Attribute values • Expressions (one−line or multi−line) • Dynamics controller attributes
SIGGRAPH ’97 COURSE NOTES
SH18
PHYSICALLY BASED MODELING
Fields •
Positional fields
•
Geometry fields. Example: sphere owns radial field
•
Types of fields • Air • Drag • Gravity • Newton • Radial • Turbulence • Uniform • Vortex
SIGGRAPH ’97 COURSE NOTES
SH19
PHYSICALLY BASED MODELING
Emitters Emitters • Creates new particles into a particle object • Hose vs. water. Emitter is the hose. Positional emitter • The transform defines the position, orientation • Parented, keyframed, in IK chain, ... Geometry emitter • Geometry owns the emitter • Point vs. surface • Particle, NURBS, polygon, lattice, curve ...
SIGGRAPH ’97 COURSE NOTES
SH20
PHYSICALLY BASED MODELING
Collision Models •
Elasticity
•
Friction
•
Collision trace depth
SIGGRAPH ’97 COURSE NOTES
SH21
PHYSICALLY BASED MODELING
Particle Collision Events •
In the event that a particle collides: • Emit • Split • Die
•
Optionally call a Mel proc each time the event occurs
SIGGRAPH ’97 COURSE NOTES
SH22
PHYSICALLY BASED MODELING
Connectables and Connections Dynamics object
Connectable object connect flags
Dynamics objects: • Particles • Soft bodies • Rigid bodies Connectable object owns one or more of any combination of: • Fields • Emitters • Collision models What kind of object can be a connectable: • Polygon, NURBS, lattice, curve, ...
SIGGRAPH ’97 COURSE NOTES
SH23
PHYSICALLY BASED MODELING
Examples of connections Description
Conn Type Connection
Sphere emits particles
emission
particles
−> sphere
Particles fall under gravity
field
particles
−> gravity
Particles bounce on surface
collision
particles
−> surface
Particles owning radial field repel a soft cube
field
soft cube
−> particles
Point emitter emits soft mesh
emission
soft mesh
−> pt emitter
SIGGRAPH ’97 COURSE NOTES
SH24
PHYSICALLY BASED MODELING
Controllers •
Manage dynamic objects that may interact
•
Interface to a differential equations solver
•
Necessary so that all dynamics objects get updated in sync
•
Hold global attributes for dynamics
SIGGRAPH ’97 COURSE NOTES
SH25
PHYSICALLY BASED MODELING
Goals •
Goals are geometry, particles, or soft bodies referenced in a particle object
•
Create a force for each particle to move toward a point on the goal
•
Particles or soft bodies can have multiple goals
•
Does not require the same number of points as target
•
Individual goal weight 0 to 1
•
Attribute goalPP 0 to 1 (per−particle)
•
Dynamics weight 0 to 1 for the forces generated by fields and collisions
SIGGRAPH ’97 COURSE NOTES
SH26
PHYSICALLY BASED MODELING
Springs •
Classical mechanics spring
•
Hook’s Law
•
Stiffness and damping
•
Start force weight, end force weight • • •
0 to 1 Amount of the force of the spring that gets applied to either start or end point (0, 1) or (1, 0) simulates nailing one end of the spring
SIGGRAPH ’97 COURSE NOTES
SH27
PHYSICALLY BASED MODELING
Soft bodies •
Soft is a command, not a node
•
For the user, soft bodies are geometry whose points are updated by a particle object
•
Internally, soft bodies are the particle object
•
Geometry converted or duplicated in a soft body
•
Springs generated by min−max distance or by walk length
•
Oversampling (small solver step size) stabilize springs
SIGGRAPH ’97 COURSE NOTES
SH28
PHYSICALLY BASED MODELING
Rigid Bodies •
Nodes •
Rigid body
•
Constraints • Nail • Pin • Hinge • Spring • Barrier
•
Transformations updated by a solver that applies forces
•
Internal constraints added implicitly (by contact) or explicitly (by constraint objects)
SIGGRAPH ’97 COURSE NOTES
SH29
PHYSICALLY BASED MODELING
Rigid Body Features •
Contact forces handled for resting and sliding objects
•
Static and dynamic friction
•
Active rigid body • collision detection • dynamic response
•
Passive rigid body • collision detection • independent control by keyframes, expressions, other nodes
•
Cache motion
•
Collision layers used to reduce complexity
•
Choice of 3 kinds of solvers
SIGGRAPH ’97 COURSE NOTES
SH30
PHYSICALLY BASED MODELING
Rendering •
Render Types
•
Hardware Rendering in OpenGL
•
Software Rendering
SIGGRAPH ’97 COURSE NOTES
SH31
PHYSICALLY BASED MODELING
Render Types • •
Point Multi−point
• •
Streak (lines) Multi−streak
•
Sprites (textures)
• •
Sphere Geometry
•
Numeric (for debugging)
• • •
Tube (Software) Cloud (Software) Blobby Surface (Software)
SIGGRAPH ’97 COURSE NOTES
SH32
PHYSICALLY BASED MODELING
Software rendering •
Volumetric rendering
•
Blobby surface render type uses any shader
•
Tube and Cloud render types use specific particle cloud shader
•
Future: hair shader
SIGGRAPH ’97 COURSE NOTES
SH33
PHYSICALLY BASED MODELING
Expressions •
Mel Language
•
Attribute Expressions
•
Particle Expressions
SIGGRAPH ’97 COURSE NOTES
SH34
PHYSICALLY BASED MODELING
Mel Language •
Maya Embedded Language
•
Unified language for file format, command engine, and expressions
•
Like C
•
Like shell
SIGGRAPH ’97 COURSE NOTES
SH35
PHYSICALLY BASED MODELING
Attribute Expressions •
Lazy evaluation − evaluate when needed
•
Multi−line expressions
•
Multiple input and output attributes
SIGGRAPH ’97 COURSE NOTES
SH36
PHYSICALLY BASED MODELING
Particle Expressions • • • • • • •
Particle expressions executed per−particle Multi−line expressions are like small programs Any attribute accessible for setting and getting values Run−time vs. creation rules Built−in functions for math, system, I/O, arrays Data types: int, float, string, vector int[], float[], string[], vector[] Maya commands can be called from expressions
Example: // Creation rule for setting color: dynExpression −c −at rgbPP −s "rgbPP = sphrand(1);" colorCloud; // Runtime rule for setting color: dynExpression −r −at rgbPP −s "if( age > .5 ) rgbPP += ;" colorCloud;
SIGGRAPH ’97 COURSE NOTES
SH37
PHYSICALLY BASED MODELING
Integrated Dynamics •
Dynamics and transforms
•
Rigid Bodies − active and passive
•
Soft Body, curves, and IK chain
•
Soft Body and deformers
•
Soft Body, Rigid Body, and goals
•
Particle collision events ...
SIGGRAPH ’97 COURSE NOTES
SH38
PHYSICALLY BASED MODELING
Dynamics in Maya
•
Overall Requirements
•
Architecture and Features
•
Animations
SIGGRAPH ’97 COURSE NOTES
SH39
PHYSICALLY BASED MODELING
Future Work •
Maya 2.0
SIGGRAPH ’97 COURSE NOTES
SH40
PHYSICALLY BASED MODELING