CS计算机代考程序代写 The Jello Cube Assignment 1, CSCI 520

The Jello Cube Assignment 1, CSCI 520
Jernej Barbic, USC
1
The jello cube
Undeformed cube Deformed cube
• The jello cube is elastic,
• Can be bent, stretched, squeezed, …, • Without external forces, it eventually
restores to the original shape. 2
Mass-Spring System
• Several mass points
• Connected to each other by springs
• Springs expand and stretch, exerting force on the mass points
• Very often used to simulate cloth
• Examples:
A 2-particle spring system Another 2-particle example Cloth animation example
3
Newton’s Laws • Newton’s 2nd law:
• Tells you how to compute acceleration, given the force and mass
• Newton’s 3rd law: If object A exerts a force F on object B, then object B is at the same time exerting force -F on A.
4
Single spring
• Obeys the Hook’s law: F = k (x – x0)
• x0 = rest length
• k = spring elasticity
(aka stiffness)
• For xx0, spring wants to contract
5
Hook’s law in 3D
• Assume A and B two mass points connected with a spring.
• Let L be the vector pointing from B to A
• Let R be the spring rest length
• Then, the elastic force exerted on A is:
6
1

Damping
• Springs are not completely elastic
• They absorb some of the energy and tend to decrease the velocity of the mass points attached to them
• Damping force depends on the velocity:
• kd = damping coefficient
• kd different than kHook !!
7
Damping in 3D
• Assume A and B two mass points connected with a spring.
• Let L be the vector pointing from B to A
• Then, the damping force exerted on A is:
• Here vA and vB are velocities of points A and B
• Damping force always OPPOSES the motion
8
A network of springs
• Every mass point connected to some other points by springs
• Springs exert forces on mass points
– Hook’s force
– Damping force
• Other forces
– External force field » Gravity
» Electrical or magnetic force field – Collision force
9
How to organize the network (for jello cube)
• To obtain stability, must organize the network of springs in some clever way
• Jello cube is a 8x8x8 mass point network
• 512 discrete points
• Must somehow connect them with springs
Basic network Stable network Network out of control
10
Solution:
Structural, Shear and Bend Springs
• There will be three types of springs:
– Structural – Shear
– Bend
• Each has its own function
11
Structural springs
• Connect every node to its 6 direct neighbours
• Node (i,j,k) connected to
– (i+1,j,k), (i-1,j,k), (i,j-1,k), (i,j+1,k), (i,j,k-1), (i,j,k+1)
(for surface nodes, some of these neighbors might not exists)
• Structural springs establish the basic structure of the jello cube
• The picture shows structural springs for the jello cube. Only springs connecting two surface vertices are shown.
12
2

Shear springs
• Disallow excessive shearing
• Prevent the cube from distorting
• Every node (i,j,k) connected to its diagonal neighbors
• Structural springs = white
• Shear springs = red
Shear spring (red) resists stretching and thus prevents shearing
13
A 3D cube
(if you can’t see it immediately, keep trying)
Bend springs
• Prevent the cube from folding over
• Every node connected to its second neighbor in every direction
(6 connections per node, unless surface node)
• white=structural springs
• yellow=bend springs (shown for a single node only)
Bend spring (yellow) resists contracting and thus prevents bending
14
External force field
• If there is an external force field, add that force to the sum of all the forces on a mass point
• There is one such equation for every mass point and for every moment in time
15
Collision detection
• The movement of the jello cube is limited to a bounding box
• Collision detection easy:
– Check all the vertices if any of them is outside the box
• Inclined plane: – Equation:
– Initially, all points on the same side of the plane
– F(x,y,z)>0 on one side of the plane and F(x,y,z)<0 on the other – Can check all the vertices for this condition 16 Collision response • When collision happens, must perform some action to prevent the object penetrating even deeper • Object should bounce away from the colliding object • Some energy is usually lost during the collision • Several ways to handle collision response • We will use the penalty method 17 The penalty method • When collision happens, put an artificial collision spring at the point of collision, which will push the object backwards and away from the colliding object • Collision springs have elasticity and damping, just like ordinary springs Boundary of colliding object F v 18 Collision spring 3 Penalty force • Direction is normal to the contact surface • Magnitude is proportional to the amount of penetration • Collision spring rest length is zero 19 Boundary of colliding object F Collision spring Integrators • Network of mass points and springs • Hook’s law, damping law and Newton’s 2nd law give acceleration of every mass point at any given time • F = ma – Hook’s law and damping provide F – ‘m’ is point mass – The value for a follows from F=ma • Now, we know acceleration at any given time for any point • Want to compute the actual motion 20 Integrators (contd.) • Theequationsofmotion: • x=pointposition,v=pointvelocity,a=pointacceleration • Theydescribethemovementofanysinglemasspoint • Fhook=sumofallHookforcesonamasspoint • Fdamping = sum of all damping forces on a mass point 21 Integrators (contd.) • When we put these equations together for all the mass points, we obtain a system of ordinary differential equations. • In general, impossible to solve analytically • Must solve numerically • Methods to solve such systems numerically are called integrators • Most widely used: – Euler – Runge-Kutta 2nd order (aka the midpoint method) (RK2) – Runge-Kutta 4th order (RK4) 22 Integrator design issues • Numerical stability – If time step too big, method “explodes” – t = 0.001 is a good starting choice for the assignment – Euler much more unstable than RK2 or RK4 » Requires smaller time-step, but is simple and hence fast – Euler rarely used in practice • Numerical accuracy – Smaller time steps means more stability and accuracy – But also means more computation • Computational cost – Tradeoff: accuracy vs computation time 23 Integrators (contd.) • RK4 is often the method of choice • RK4 very popular for engineering applications • The time step should be inversely proportional to the square root of the elasticity k [Courant condition] • For the assignment, we provide the integrator routines (Euler, RK4) – void Euler(struct world * jello); – void RK4(struct world * jello); – Calls to there routines make the simulation progress one time-step further. – State of the simulation stored in ‘jello’ and automatically updated 24 4 Tips • Use double precision for all calculations (double) • Do not overstretch the z-buffer – It has finite precision – Ok: gluPerspective(90.0,1.0,0.01,1000.0); – Bad: gluPerspective(90.0,1.0,0.0001,100000.0); • Choosing the right elasticity and damping parameters is an art – Trial and error – For a start, can set the ordinary and collision parameters the same • Read the webpage for updates 25 5