IP Library Granted Patent US 9,922,141
Granted Patent B2
US 9,922,141 · App. 11/944,593 · Granted Mar 20, 2018

Systems and methods for fast simulation and visualization of sparse fluids

Inventor: Matthias Michael Wloka (San Jose, CA)
Assignee: TAKE-TWO INTERACTIVE SOFTWARE, INC.
G06F17/5009G06T13/60G06T15/04G06F2217/16G06T17/20G06T2210/24
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 9,922,141
App. No.
11/944,593
Granted
Mar 20, 2018
Kind
B2
Abstract

Example embodiments of the present invention are directed to systems and methods for simulating sparse fluids and visualizing the results. An example embodiment involves simulating sparse fluids on a two-dimensional surface and using that simulation to visualize the results on a three dimensional surface. The fluid computation operates in a two-dimensional (2D) plane although the visualization of the fluid simulation is three-dimensional (3D). The simulation uses surface shape and properties, local gravity vectors, and various other criteria to simulate realistic behavior of sparse fluids, e.g., sweat, tears, blood, and drops of liquid. The systems and methods of the present invention may be implemented, for example, on a highly parallel architecture, such as a graphics processing unit (GPU), and on non-parallel architectures.

Claims (45)

1. A method for computer graphics simulation of fluid flow of sparse fluids on a three dimensional surface using a processor, wherein the processor performs actions comprising:

creating a partitioned two dimensional surface representing the three dimensional surface, wherein each partition of the two dimensional surface corresponds to a portion of the three dimensional surface;

storing the partitions in a data structure;

determining a normal vector for each partition in the data structure;

determining a gravitational force vector for each partition;

storing the gravitational force vector in the data structure;

storing a fluid amount associated with each partition in the data structure;

determining fluid flow on the two dimensional surface, including determining changes in the amount of fluid associated with each partition based at least in part on the gravitational force vector; wherein said determination of fluid flow includes accounting for fluid moving to and from neighboring partitions of each two dimensional partition; wherein the sparse fluid flow computations are performed only within partitions contained in the two-dimensional surface;

reducing processor utilization while maintaining realistic animation based on said determined fluid flow on the two-dimensional surface;

and visualizing the simulated fluid flow over the three dimensional surface in three-dimensional computer graphics for rendering on a display screen based on said determined fluid flow on the two dimensional surface, wherein the visualizing includes translating the fluid amounts per partition to visual characteristics of the corresponding portion of the three dimensional surface.

2. The method of claim 1 , wherein the visualizing includes translating fluid amounts in each two dimensional partition to visual properties including specularity, while rendering a three dimensional surface.

3. The method of claim 1 , wherein the simulating occurs less frequently than a rendering.

4. The method of claim 1 , wherein the simulating occurs more frequently than a rendering.

5. The method of claim 1 , wherein the simulating occurs at the same frequency as a rendering.

6. The method of claim 1 , wherein the data structure is a texture file.

7. The method of claim 1 , wherein a size of each partition of the two dimensional surface is determined at least in part by a size of a drop of the fluid.

8. The method of claim 1 , wherein a shape of the fluid on any particular partition is determined at least in part by an amount of fluid in partitions adjacent to a specific partition.

9. The method of claim 1 , wherein the determination of changes in the amount of fluid flow accounts for per-pixel normal.

10. The method of claim 1 , wherein the simulating further includes storing surface properties for each partition in the data structure.

11. The method of claim 10 , wherein the determination of changes in the fluid amount associated with each partition is based at least in part on any of or any combination of: a fluid evaporation rate, a fluid production rate, and surface properties of each partition.

12. The method of claim 10 , wherein the determination of changes in the fluid amount associated with each partition is based in part on evaluating the force vector to determine the amount of fluid that has lifted off the partition surface.

13. The method of claim 1 , wherein the simulation further includes receiving a second force vector.

14. The method of claim 13 , wherein the gravitational force vector is stored in the data structure in a format that combines it with the second force vector.

15. A non-transitory machine-readable storage medium encoded with instructions configured to be executed by a processor, the instructions which, when executed by the processor, cause the performance of a method for computer graphics simulation sparse fluid flow on a three dimensional surface, the method comprising:

creating a partitioned two dimensional surface representing the three dimensional surface, wherein each partition of the two dimensional surface corresponds to a portion of the three dimensional surface;

storing the partitions in a data structure;

determining a normal vector for each partition in the data structure;

determining a gravitational force vector for each partition;

storing the gravitational force vector in the data structure;

storing a fluid amount associated with each partition in the data structure;

determining fluid flow on the two dimensional surface, including determining changes in the amount of fluid associated with each partition based at least in part on the gravitational force vector; wherein said determination of fluid flow includes accounting for fluid moving to and from neighboring partitions of each two dimensional partition; wherein the sparse fluid flow computations are performed only within partitions contained in the two-dimensional surface;

reducing processor utilization while maintaining realistic animation based on said determined fluid flow on the two-dimensional surface;

and visualizing the simulated fluid flow over the three dimensional surface in three-dimensional computer graphics for rendering on a display screen based on said determined fluid flow on the two dimensional surface, wherein the visualizing includes translating the fluid amounts per partition to visual characteristics of the corresponding portion of the three dimensional surface.

16. A system for computer graphics simulation of fluid flow of sparse fluids on a three dimensional surface, comprising:

a processor in communication with a memory;

the processor configured to create a partitioned two dimensional surface representing the three dimensional surface, wherein each partition of the two dimensional surface corresponds to a portion of the three dimensional surface;

the memory configured to store the partitions in a data structure;

the processor configured to determine a normal vector for each partition in the data structure;

the processor configured determine a gravitational force vector for each partition;

the memory configured to store the gravitational force vector in the data structure;

the memory configured to store fluid amount associated with each partition in the data structure;

the processor configured to determine fluid flow on the two dimensional surface, including determining changes in the amount of fluid associated with each partition based at least in part on the gravitational force vector; wherein said determination of fluid flow includes accounting for fluid moving to and from neighboring partitions of each two dimensional partition; wherein the sparse fluid flow computations are performed only within partitions contained in the two-dimensional surface;

reducing processor utilization while maintaining realistic animation based on said determined fluid flow on the two-dimensional surface;

and the processor configured to visualize the simulated fluid flow over the three dimensional surface in three-dimensional computer graphics for rendering on a display screen based on said determined fluid flow on the two dimensional surface, wherein the visualizing includes translating the fluid amounts per partition to visual characteristics of the corresponding portion of the three dimensional surface.

17. The system of claim 16 , wherein the processor is a GPU.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Jul 22, 2020
From: LESLIE BENZIES; DAN HOUSER; SAM HOUSER; ANOTHER GAME COMPANY LP
To: TAKE TWO INTERACTIVE SOFTWARE, INC.
Reel/Frame 053276/0123 →
RELEASE OF SECURITY INTEREST Recorded Feb 14, 2019
From: WELLS FARGO CAPITAL FINANCE, LLC (F/K/A WELLS FARGO FOOTHILL, INC.)
To: TAKE-TWO INTERACTIVE SOFTWARE, INC.
Reel/Frame 048327/0555 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2017
From: WLOKA, MATTHIAS MICHAEL
To: TAKE-TWO INTERACTIVE SOFTWARE, INC.
Reel/Frame 042244/0295 →
CONFIRMATION OF SECURITY INTEREST GRANT (PATENTS) Recorded Oct 18, 2011
From: TAKE-TWO INTERACTIVE SOFTWARE, INC.
To: WELLS FARGO CAPITAL FINANCE INC.
Reel/Frame 027083/0001 →
SECURITY AGREEMENT Recorded Mar 23, 2009
From: TAKE TWO INTERACTIVE SOFTWARE, INC.
To: ANOTHER GAME COMPANY LP; HOUSER, SAM; HOUSER, DAN; BENZIES, LESLIE
Reel/Frame 022436/0328 →
Continuity (2)
Provisional Application 60867054 · Nov 22, 2006
Related Publication 20080120075A1 · May 22, 2008