1 / 10

Physically Based Modeling

Physically Based Modeling. Let physics take over!. Physically Based Modeling. Account for forces in system Account for object interaction, e.g. friction, collision. Spring-Mass-Damper. Model: jello, cloth, muscle Have gravity: add mass to vertices

Download Presentation

Physically Based Modeling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Physically Based Modeling Let physics take over!

  2. Physically Based Modeling • Account for forces in system • Account for object interaction, e.g. friction, collision

  3. Spring-Mass-Damper • Model: jello, cloth, muscle • Have gravity: add mass to vertices • Have stability (add stiffness to flag pole) • Put springs on each vertex, allowing to stretch a finite amount • Another use: angular springs on polygon corners to prevent self-penetration • Numerical integration for animation

  4. Governing Equations F • Hooke’s Law (for graphics):Fs = ks(dist-len) where • len = rest length • dist = current length • ks = spring constant • Fij = -Fji = ks(distij(t) – lenij)dij • Where dij = unit vector along i-j • t = time • Fs = Σ Fij (sum of all edges coming out of a vertex) V1 E12 E31 V3 V2 E23 Look at neighbors when calculating spring force! V

  5. Damping Force & Angular Springs • FD = -kd v(t) • Damper force is proportional to velocity • and acts in direction opposite to velocity • NET FORCE:F = Fs + Fd = ks(dist-len) -kd v(t) M2 M1 • Angular spring: τ (torque) = ks[Ө(t) -Ө(rest)] - kdӨ(t)

  6. Object Representation • Vertices: mass • Edges: • Spring, damping constant • Resting length • Vertex IDs • Each vertex has • Current position • Current velocity • Current acceleration • Mass • Number of edges X, Y, Z components

  7. How it all comes together • Use Newton’s Law (F = ma) to calculateacceleration for every vertex(big system of linear equations) • Basic strategy: accumulate acceleration from different sources (Gravity, Spring, Damper) and integrate 2 times to get velocity and position • Can use Runge-Kutta, for example • For project: you can use xspringies (2D) & ODE library or other library you can find or roll your own • Make sure to cite your sources

  8. Details (source Paul Bourke) Create the particles Create the springs between the particles Initialize the particle and spring parameters loop in time { Update the particle positions (solve ODEs) Display the results somehow }

  9. Update Particle Positions • Calculate force at each point • Add Positive force: Force*mass for each X,Y,Z • Subtract Drag: drag*velocity for each X,Y,Z • Handle spring interaction • For each spring • For each of X,Y,Z of attached points • Force = Hooke’s law • Force += damping constant(Δvelocity of points)(Δlen of points in direction)/lenx,y,z • Force *= -(Δlen of points)/lenx,y,z • Add or subtract force to/from point (if the point is not fixed)

  10. Calculate derivatives for points • We already have velocities: • dpx/dt = velocityx • Velocity derivative: • dvx/dt = forcex/mass • And solve with your favorite ODE solver (Runge-Kutta..) • Update positions • Update velocity

More Related