1 / 10

Physically Based Modeling

Physically Based Modeling. Account for forces in systemAccount for object interaction, e.g. friction, collision. Spring-Mass-Damper. Model: jello, cloth, muscleHave gravity: add mass to verticesHave stability (add stiffness to flag pole)Put springs on each vertex, allowing to stretch a finite a

maurilio
Télécharger la présentation

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 Hookes 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 = S Fij (sum of all edges coming out of a vertex)

    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)

    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

    7. How it all comes together Use Newtons Law (F = ma) to calculate acceleration 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 = Hookes 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