IP Library Granted Patent US 8,237,722
Granted Patent B2
US 8,237,722 · App. 12/195,377 · Granted Aug 7, 2012

Systems and method for visualization of fluids

Assignee: Take Two Interactive Software, Inc.
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 8,237,722
App. No.
12/195,377
Granted
Aug 7, 2012
Kind
B2
Abstract

Methods and systems for simulating and visualizing a flowing fluid when interacting with an intersecting object are provided. The simulating of falling fluid as a two-dimensional plan and rendering first and second depth buffers corresponding to current depth information for, respectively, a top surface and a bottom surface of an object is rendered. The values of first and second current simulation textures are rendered for the top and bottom surfaces of the object, where for a given frame each of the first and second current simulation texture values is set to either a corresponding value of the first and second current simulation texture values is set to either a corresponding value of each or second depth buffer or a corresponding, velocity-offset value of the previous frame's first or second simulation texture respectively. A visible fluid mesh is rendered in the two-dimensional plane based on the current simulation textures.

Claims (60)

1. A method for simulating and visualizing an interaction between an object and a falling fluid, comprising:

simulating the falling fluid as a two-dimensional plane;

rendering a first one-dimensional depth buffer and a second one-dimensional depth buffer, the first and second depth buffers corresponding to current depth information for, respectively, a top surface and a bottom surface of the object;

rendering values of a first current simulation texture for the top surface of the object, wherein for a given frame each of the first current simulation texture values is set to one of: a corresponding value of the first depth buffer and a corresponding, velocity-offset value of the previous frame's first simulation texture;

rendering values of a second current simulation texture for the bottom surface of the object, wherein for the given frame each of the second current simulation texture values is set to one of: a corresponding value of the second depth buffer and a corresponding, velocity-offset value of a previous frame's second simulation texture; and

rendering a visible fluid mesh in the two-dimensional plane based on the current simulation textures.

2. The method of claim 1 , further comprising:

rendering a splash texture at the location of the first current simulation texture.

3. The method of claim 2 , further comprising:

moving the splash texture from a position at the bottom of the two-dimensional plane to a position on the upper surface of the object.

4. The method claim 2 , wherein the splash texture is positioned by a vertex texture fetch.

5. The method of claim 1 , wherein the depth information for the top surface and the bottom surface is in relation to a top edge of the two-dimensional plane.

6. The method of claim 1 , wherein the fluid mesh is not rendered at any location between the first simulation texture and the second simulation texture.

7. The method of claim 1 , wherein the velocity used to offset the values of the previous frame's first and second simulation textures approximates the effect of gravity.

8. The method of claim 1 , wherein the rendering of the first current simulation texture values includes determining which of (a) the corresponding value of the first depth buffer and (b) the corresponding, velocity-offset value of the previous frame's first simulation texture is closer to the top of the two-dimensional plane.

9. The method of claim 8 , wherein the rendering of the first current simulation texture values further includes setting each of the first current simulation texture values to whichever of (a) the corresponding value of the first depth buffer and (b) the corresponding, velocity-offset value of the previous frame's first simulation texture is determined to be closer to the top of the two-dimensional plane.

10. The method of claim 1 , wherein the rendering of the second current simulation texture values includes determining whether the previous frame's corresponding first simulation texture value has reached the bottom of the two-dimensional plane.

11. The method of claim 10 , wherein the rendering of the second current simulation texture values further includes setting each of the second current simulation texture values to one of: (a) the corresponding value of the first depth buffer if the previous frame's corresponding first simulation texture value has reached the bottom of the two-dimensional plane and (b) the corresponding, velocity-offset value of the previous frame's second simulation texture if the previous frame's corresponding first simulation texture value has not reached the bottom of the two-dimensional plane.

12. The method of claim 1 , wherein the rendering of the visible fluid mesh includes determining which pixels of the fluid mesh would fall between the first current simulation texture and the second current simulation texture when the fluid mesh is mapped to the two-dimensional plane.

13. The method of claim 12 , wherein the rendering of the visible fluid mesh further includes rendering only the pixels of the fluid mesh that are not determined to fall between the first current simulation texture and the second current simulation texture.

14. A computer-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 simulating and visualizing an interaction between an object and a falling fluid, comprising:

simulating the falling fluid as a two-dimensional plane;

rendering a first one-dimensional depth buffer and a second one-dimensional depth buffer, the first and second depth buffers corresponding to current depth information for, respectively, a top surface and a bottom surface of the object in relation to an upper edge of the two-dimensional plane;

rendering values of a first current simulation texture for the top surface of the object, wherein for a given frame each of the first current simulation texture values is set to either a corresponding value of the first depth buffer or a corresponding, velocity-offset value of a previous frame's first simulation texture;

rendering values of a second current simulation texture for the bottom surface of the object, wherein for the given frame each of the second current simulation texture values is set to either a corresponding value of the second depth buffer or a corresponding, velocity-offset value of the previous frame's second simulation texture; and

rendering a visible fluid mesh in the two-dimensional plane based on the current simulation textures.

15. A system for simulating and visualizing an interaction between an object and a falling fluid, comprising:

a processor in communication with a memory;

the memory being configured to store a data structure representing a two-dimensional surface, first and second one-dimensional depth buffers, and first and second one-dimensional current simulation textures;

the processor being configured to simulate the falling fluid as a two-dimensional plane;

the processor being configured to render the first one-dimensional depth buffer and the second one-dimensional depth buffer to correspond to current depth information for, respectively, a top surface and a bottom surface of the object in relation to an upper edge of the two-dimensional plane;

the processor being configured to render values of the first current simulation texture for the top surface of the object, wherein for a given frame each of the first current simulation texture values is set to either a corresponding value of the first depth buffer or a corresponding, velocity-offset value of a previous frame's first simulation texture;

the processor being configured to render values of the second current simulation texture for the bottom surface of the object, wherein for the given frame each of the second current simulation texture values is set to either a corresponding value of the second depth buffer or a corresponding, velocity-offset value of the previous frame's second simulation texture; and

the processor being configured to render a visible fluid mesh in the two-dimensional plane based on the current simulation textures.

16. The system of claim 15 , wherein the processor is a Graphics Processing Unit (GPU).

17. The system of claim 16 , wherein the rendering of the first current simulation texture and the rendering of the second current simulation texture occurs at least to some degree in parallel on the processor.

18. A method for simulating and visualizing an interaction between an object and a falling fluid, comprising:

simulating the falling fluid as a two-dimensional plane;

rendering a splash texture at the bottom of the two-dimensional plane; and

moving the splash texture to an upper surface of the object intersecting the two-dimensional plane.

19. The method of claim 18 , wherein the splash texture is positioned by a vertex texture fetch.

20. The method of claim 19 , wherein a lookup value for the vertex texture fetch is set to a location at which the splash effect was originally spawned.

21. The method of claim 18 , further comprising:

rendering a one-dimensional depth buffer corresponding to current depth information for a top surface of the object in relation to an upper edge of the two-dimensional plane;

rendering values of a current simulation texture for the top surface of the object, wherein for a given frame each of the current simulation texture values is set to either a corresponding value of the first depth buffer or a corresponding, velocity-offset value of the previous frame's simulation texture; and

moving the splash texture to the location of the current simulation texture.

22. A system for simulating and visualizing an interaction between an object and a falling fluid, comprising:

a processor in communication with a memory;

the memory being configured to store a data structure representing a two-dimensional surface, and a splash texture;

the processor being configured to simulate the falling fluid as a two-dimensional plane;

the processor being configured to render the splash texture at the bottom of the two-dimensional plane; and

the processor being configured to move the splash texture to an upper surface of the object intersecting the two-dimensional plane.

23. The system of claim 22 , wherein the processor is a Graphics Processing Unit (GPU).

24. The system of claim 22 , wherein processor is configured to position the splash texture using a vertex texture fetch.

25. The system of claim 24 , wherein the processor is configured to set a lookup value for the vertex texture fetch to a location at which the splash effect was originally spawned.

26. The system of claim 22 , wherein:

the memory is further configured to store a data structure representing a one-dimensional depth buffer, and a one-dimensional current simulation texture;

the processor is configured to render the one-dimensional depth buffer to correspond to current depth information for a top surface of the object in relation to an upper edge of the two-dimensional plane;

the processor is configured to render values of a current simulation texture for the top surface of the object, wherein for a given frame each of the current simulation texture values is set to either a corresponding value of the first depth buffer or a corresponding, velocity-offset value of the previous frame's simulation texture; and

the processor is configured to move the splash texture to the location of the current simulation texture.

Assignments (6)
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2009
From: JOHNSON, JESSE
To: TAKE TWO INTERACTIVE SOFTWARE, INC.
Reel/Frame 022055/0171 →
CONFIRMATION OF SECURITY INTEREST GRANT Recorded Oct 9, 2008
From: TAKE-TWO INTERACTIVE SOFTWARE, INC.
To: WELLS FARGO FOOTHILL, INC., AS AGENT
Reel/Frame 021655/0306 →
Continuity (1)
Related Publication 20100045669A1 · Feb 25, 2010