Physics simulation apparatus and method
AssigneeTelekinesys Research Limited
InventorsAndrew Bond, Oliver Strunk, Adrian Gasinski
Life of this patent
Estimating the term…
Abstract
A method and apparatus wherein complex physical interactions and collisions are modeled at a high level of detail while reducing the computational demands placed on the processing system. In one embodiment the method comprising the steps of defining a first object and a second object, each object adapted for colliding with the other object; assigning an interaction type for at least one of the first and second object in response to an object parameter; and selecting between a continuous simulation of a collision and a discrete simulation of the collision in response to the interaction type.
Claims37
A method of simulating a plurality of objects, the method comprising the steps of:
- detecting a collision between a pair of objects;
- selecting between a continuous simulation mode and a discrete simulation mode for each pair in response to a physics engine parameter;
- and
- simulating an interaction between the pair of objects using the selected simulation mode.
A method of simulating object interactions, the method comprising the steps of:
- defining a first object having a first object type and a second object having a second object type;
- assigning an interaction type in response to at least one object type;
- and
- selecting between a continuous simulation mode and a discrete simulation mode in response to the interaction type.
A method of simulating object interactions, the method comprising the steps of:
- relating a physics simulation process and a graphic display process using a reference timeframe;
- calculating a first set of motion states for a plurality of objects at a first time;
- calculating a second set of motion states for the plurality of objects at a second time;
- and
- displaying a set of the plurality of objects at a third time by interpolating object positions using the first and second motion states.
A method of simulating object interactions in a physics engine, the method comprising the steps of:
- calculating a motion state for a plurality of objects at a first time;
- calculating a potential motion state for the plurality of objects at a second time;
- arranging a plurality of times of impact (TOIs) in chronological order, each TOI associated with a pair of objects and a TOI event;
- processing TOI events sequentially to determine if a collision is valid;
- generating TOIs in response to valid collisions;
- and
- simulating object collisions using a set of valid TOI events.
A method of reducing collision detection processing time, the method comprising the steps of:
- detecting a collision of a first object and a second object;
- calculating an impulse, the impulse adapted for changing a velocity associated with the first object or the second object;
- and
- determining if application of the impulse to the first object results in the first and second objects moving apart at a point of collision.
A method of identifying a potential collision event for two simulated bodies, the method comprising the steps of
- calculating an initial separation distance and an initial separation direction between the two bodies;
- updating a distance value associated with each body as each body moves;
- and
- determining if a potential collision event may occur between the two bodies using the distance value, the initial separating distance and the initial separation direction.
A method of simulating two convex objects, the method comprising the steps of
- calculating an initial separation distance and an initial separation direction between a corner of the first object and a planar surface of the second object;
- updating a distance value measured between the corner and the planar surface as one object moves relative to the other object;
- and
- determining a potential collision state between the two objects using the distance value, the initial separating distance and the initial separating direction.
A method of calculating contact points between two bodies, each body having one or more convex pieces, the method comprising the steps of
- generating a convex hull for each of the two bodies;
- calculating a contact point between each of the convex hulls;
- determining whether the contact point lies on an inner convex portion of both bodies;
- if it does, using the contact point for collision detection;
- and
- if it does not, generating additional contact points.
A method of determining a separation vector for resolving interpenetration events involving a plurality of objects in a physics engine, the method comprising the steps of:
- identifying a first set of interpenetrating objects;
- identifying a second set of interpenetrating object pairs from the first set;
- transforming each interpenetrating object pair in the second set into a Minkowski space representation;
- generating a vector set of candidate separation vectors for each Minkowski space representation, each candidate separation vector having a magnitude and a direction;
- and
- selecting the separation vector from all sets of candidate separation vectors, wherein the separation vector selected indicates the direction and magnitude necessary to resolve the interpenetration of the plurality of objects.
A method of determining a separation vector for a plurality of interpenetrating objects in a physics engine, the method comprising the steps of:
- associating a range of possible expansion directions with one of the objects;
- reducing the cardinality of a vector set of candidate separation vectors in response to the range of possible expansion directions;
- and
- resolving an interpenetration state for the plurality of objects using one separation vector.
Dependencies are inferred from the claim text.