Physics simulation apparatus and method
First Claim
1. 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.
2 Assignments
0 Petitions
Accused Products
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.
169 Citations
37 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. 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. - View Dependent Claims (8, 9)
-
-
10. 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. - View Dependent Claims (11, 12, 13)
-
-
14. 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. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. 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. - View Dependent Claims (21, 22)
-
-
23. 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. - View Dependent Claims (24, 25, 26)
-
-
27. 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. - View Dependent Claims (28)
-
-
29. 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. - View Dependent Claims (30)
-
-
31. 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. - View Dependent Claims (32, 33, 34)
-
-
35. 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. - View Dependent Claims (36, 37)
-
Specification