IP Library Granted Patent US 7,243,057
Granted Patent B2
US 7,243,057 · App. 10/798,898 · Granted Jul 10, 2007

Method for modeling complex occlusions in fluid simulations

Assignee: Frantic Films Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,243,057
App. No.
10/798,898
Granted
Jul 10, 2007
Kind
B2
Abstract

A method of incorporating effects of solid dynamic objects into each discrete time step of a fluid simulation in a high quality fashion on Cartesian grids. The method relies on modifying the fluid velocity field within regions internal to the solid objects prior to the calculation of advection and pressure effects such that the sub voxel details of the solid objects are accurately represented. The modification of the velocities is based on allowing maximal freedom of fluid movement under the constraints the occlusions impose. Additionally, the solid objects are optionally represented in a unified level set fashion such that the computations required for modifying the fluid velocity are efficient. The overall result of this improved method rivals the quality of that achieved with the more complex curvilinear grid approach.

Claims (38)

1. A computer-implemented method of including at least one impermeable object in a fluid simulation where a state of a fluid comprised of velocities is updated in a given region over discrete time steps by:

dividing the region into cells comprising a regular grid and then defining a velocity field which associates a velocity vector with each cell; and

recalculating the velocity field at each consecutive time step based on the state of the fluid on the previous time step and an effect of said at least one impermeable object via Navier-Stokes equations comprising calculation of advection and pressure effects;

the method of including said at least one impermeable object comprising:

identifying surfaces of said at least one impermeable object in the given region to define cells contained within said at least one impermeable object and to define closest fluid containing cells within the fluid;

assigning a value to the velocity vectors associated with the cells contained within said at least one impermeable object when the velocity field is used for the calculation of the advection and pressure effects, which is copied from the closest fluid containing cell;

when the value includes a normal component which would cause motion of the fluid into said at least one impermeable object, removing the normal component; and

storing the values of the velocity vectors associated with the cells contained within said at least one impermeable object with said normal components being removed therefrom.

2. The computer-implemented method according to claim 1 wherein said at least one impermeable object has velocities defined on the surfaces of said at least one impermeable object, the method including:

determining a relative velocity by taking the difference between the velocity from the closest fluid containing cell and the velocity from a nearest surface of said at least one impermeable object; and

removing the normal component which would cause motion of the fluid into said at least one impermeable object by taking a dot product of the relative velocity with a surface normal of a nearest impermeable object surface, and when it is negative, adding to the velocity vector, a vector which has a magnitude of the dot product times a magnitude of the velocity vector and which points in a direction of the surface normal of the nearest impermeable object surface.

3. The computer-implemented method according to claim 1 wherein a fluid volume including a fluid surface defined by level set values representing a distance to the surface is advected according to the velocity vectors, the method including:

storing velocity data only for those cells which are inside or near the fluid volume; and

storing level set values only for those cells which are near the fluid surface.

4. The computer-implemented method according to claim 1 including:

defining said at least one impermeable object as a level set with level set values representing a signed distance to a nearest surface of said at least one impermeable object, in conjunction with a velocity field comprising the velocities of a nearest surface; and

obtaining velocities of the surface of said at least one impermeable object, and normals of the surface of said at least one impermeable object; and

determining whether a cell is inside or outside of said at least one impermeable object using the level set and the velocity field.

5. The computer-implemented method according to claim 1 , including:

obtaining the velocity vector from the closest fluid cell by extrapolating the velocity vectors from the cells just outside the surface of said at least one impermeable object into the cells inside the surface of said at least one impermeable object satisfying a constraint that the gradient of the extrapolated velocity vectors along a normal direction of the surface of said at least one impermeable object is zero.

6. The computer-implemented method according to claim 1 wherein said at least one impermeable object may be deforming and including a transformation along a path, the method including: computing the velocity vectors of the surface of said at least one impermeable object as the sum of a velocity caused by the transformation along the path and a velocity caused by the deforming of the object surface.

7. A computer-implemented method of including at least one impermeable object in a fluid simulation where a state of a fluid is updated in a given region over discrete time steps by:

dividing the region into cells comprising a regular grid; and

recalculating the fluid state at each consecutive time step based on the state of the fluid on the previous time step and an effect of said at least one impermeable object via Navier-Stokes equations;

the method of including said at least one impermeable object comprising:

identifying surfaces of said at least one impermeable object in the given region;

defining said at least one impermeable object as a level set with level set values representing a signed distance to a nearest surface of said at least one impermeable object, in conjunction with a velocity field comprising velocities of the nearest surface of said at least one impermeable object;

storing, in conjunction with the level set values representing the signed distance to the nearest surface of said at least one impermeable object, the velocities of the nearest surface of said at least one impermeable object.

8. The computer-implemented method according to claim 7 including:

storing level set values only for those cells which are near the surface of said at least one impermeable object; and

storing velocity values only for those cells which are near the surface of said at least one impermeable object.

9. In a computer-implemented method of fluid simulation where a state of a fluid is updated in the presence of impermeable objects having surfaces in a given region over discrete time steps by:

dividing the region into cells comprising a regular grid; and

recalculating the fluid state at each consecutive time step based on the state of the fluid on the previous time step and the effect of impermeable object surfaces via Navier-Stokes equations;

the improvement comprising:

defining the impermeable objects as a level set with level set values representing a signed distance to a nearest surface of the impermeable objects, in conjunction with a velocity field comprising velocities of the nearest surface of the impermeable objects;

storing level set values only for those cells which are near the surface of the impermeable objects; and

storing velocity values only for those cells which are near the surface of the impermeable objects.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2018
From: THINKBOX SOFTWARE INC.
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 044705/0165 →
CHANGE OF NAME Recorded Oct 26, 2010
From: FRANTIC FILMS SOFTWARE INC.
To: PRIME FOCUS VFX TECHNOLOGY INC.
Reel/Frame 025192/0504 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2010
From: PRIME FOCUS VFX TECHNOLOGY INC.
To: THINKBOX SOFTWARE INC.
Reel/Frame 025192/0350 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER NOTED ON THE PREVIOUSLY RECORDED ASSIGNMENT FROM 7234057 TO 7243057 PREVIOUSLY RECORDED ON REEL 020174 FRAME 0962. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF US PATENT 7243057. Recorded Dec 4, 2007
From: FRANTIC FILMS CORPORATION
To: FRANTIC FILMS SOFTWARE COMPANY
Reel/Frame 020196/0349 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2007
From: FRANTIC FILMS CORPORATION
To: FRANTIC FILMS SOFTWARE INC.
Reel/Frame 020174/0962 →
RELEASE OF SECURITY INTEREST Recorded Dec 3, 2007
From: MMV FINANCE CANADA INC.; MMV FINANCIAL INC.
To: FRANTIC FILMS CORPORATION
Reel/Frame 020174/0956 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2006
From: FRANTIC FILMS CORPORATION
To: MMV FINANCIAL INC.
Reel/Frame 018130/0287 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2004
From: HOUSTON, BENJAMIN B.; WEIBE, MARK
To: FRANTIC FILMS CORPORATION
Reel/Frame 015615/0478 →
Continuity (2)
Provisional Application 6045348200 · Dec 12, 2003
Related Publication 20050240384A1 · Oct 27, 2005