Abstract
Method and system for efficiently controlling animated smoke which utilizes a sequence of target smoke states to generate a smoke simulation in which the smoke is driven towards each of these targets in turn, while exhibiting naturallooking interesting smokelike behavior. This control is made possible by two new terms added to standard flow equations: (i) a driving force term that causes the fluid to carry the smoke towards a particular target, and (ii) a smoke gathering term that prevents the smoke from diffusing too much. These terms are explicitly defined by the instantaneous state of the system at each simulation time step. Thus, no expensive optimization is required, allowing complex smoke animations to be generated with very little additional cost compared to ordinary flow simulations. The invention is also applicable to animation of other fluid flow phenomena.
Claims

A method for performing computer graphic simulation of an incompressible fluid in motion, the method comprising:
providing to a simulator module input data that includes a scalar field that defines a physical property of the fluid or of matter suspended therein and a sequence of target scalar fields that define a desired temporal evolution of the scalar field;
simulating fluid motion by calculating a velocity vector u of the fluid at a plurality of points in the simulated fluid, at a plurality of time intervals, wherein said calculation is performed by solving an equation:
u_{t}=−u·∇u−∇p+f
where:
p=hydrostatic pressure,
f=combination of forces acting on the fluid and includes a driving force F that propels the fluid in such a manner that the resulting flow carries the scalar field towards the next target scalar field in said sequence;
u_{t}=is the vector of time derivatives of the velocity field u;
using said velocity values at each time interval to advect the scalar field;
sending some or all of the scalar fields to a renderer module for producing a sequence of animation frames each relating to a respective scalar field; and
storing the sequence of animation frames for subsequent display.

The method according to claim 1, wherein the driving force F is a function F(ρ,ρ^{*}) where:
ρ=is a current scalar field, and
ρ=is the next target scalar field in said sequence.

The method according to claim 3, wherein the driving force F(ρ,ρ^{*}) satisfies the equation:
F(ρ,ρ*)=ρ~∇ρ~*ρ~*
where:
ρ=is a current scalar field,
ρ^{*}=is the next target scalar field in said sequence,
{tilde over (ρ)}=a blurred version of the scalar field.
 The method according to claim 2, including inputting n scalar fields ρ^{1}, . . . , ρ^{n }and n corresponding target scalar fields ρ^{*,1}, . . . , ρ^{*,n}, the driving force F being the sum of the n driving forces F(ρ^{i},ρ^{*,i}) and there being n advection equations for the scalar fields given by: ρ_{t}=−u·∇ρ+v_{g}G(ρ^{i},ρ^{*,i})

The method according to claim 1, wherein using said velocity values at each time interval to advect the scalar field includes applying a gathering term G(ρ,ρ^{*}) that satisfies the equation:
ρ_{t}=−u·∇ρ+v_{g}G(ρ, ρ^{*})
where:
ρ=is the scalar field,
ρ_{t}=is the time derivative of the scalar field,
v_{g}=a parameter that determines the rate at which p is gathered towards ρ^{*}.
 The method according to claim 5, including inputting n scalar fields ρ^{1}, . . . ,σ^{n }and n corresponding target scalar fields ρ^{*,1}, . . . ,ρ^{*,n }the driving force F being the sum of the n driving forces F(ρ^{i}, ρ^{*,n}) and there being n advection equations for the scalar fields given by: ρ_{t}^{i}=−u·∇ρ^{i}+v_{g}G(ρ^{i},ρ^{*,i }
 The method according to claim 1, wherein the simulation is performed in two dimensions.
 The method according to claim 1, wherein the simulation is performed in three dimensions.

The method according to claim 1, wherein the input data comprises one or more of the following:
(1) the definition of a grid, wherein said velocity is to be calculated at each cell of said grid and at each of said time intervals;
(2) the length of said time interval;
(3) the viscosity of the fluid; and
(4) the velocity values at the boundaries of said grid.
 The method according to claim 1, wherein the scalar field is representative of temperature.
 The method according to claim 1, wherein said scalar field is representative of density of matter suspended in the fluid.
 The method according to claim 1, wherein said scalar field is representative of texture.
 The method according to claim 1, wherein said scalar field is representative of smoke particles suspended in a fluid.
 An animation sequence generated using the method according to claim 13, depicting smoke starting from one shape and evolving into entirely different shapes.
 An animation sequence generated using the method according to claim 13, depicting smoke forming a desired shape.
 An animation sequence generated using the method according to claim 13, depicting smoke following an animated character/shape.
 An animation sequence generated using the method according to claim 13, depicting several smoke fields controlled separately, but evolving in the same fluid, so that they affect each other.
 The method according to claim 1, wherein the combination of forces f includes at least one in the group of: a viscous force, a buoyancy force and a gravity force of the fluid.

A system for performing computer graphic simulation of an incompressible fluid in motion, the system comprising:
a simulator module having an input for receiving data that includes a scalar field that defines a physical property of the fluid or of matter suspended therein and a sequence of target scalar fields that define a desired temporal evolution of the scalar field;
said simulator module being adapted to calculate a velocity vector u of the fluid at a plurality of points in the simulated fluid, at a plurality of time intervals, wherein said calculation is performed by solving an equation:
u_{t}=−u·∇u−∇p+f
where:
p=hydrostatic pressure,
f=combination of forces acting on the fluid and includes a driving force F that propels the fluid in such a manner that the resulting flow carries the scalar field towards the next target scalar field in said sequence,
u_{t}=is the vector of time derivatives of the velocity field u;
an advection unit coupled to the computing unit for and being responsive to said velocity values at each time interval to advect the scalar field;
a renderer module coupled to the advection unit and being responsive to some or all of the scalar fields for producing a sequence of animation frames each relating to a respective scalar field; and
a storage unit coupled to the renderer module for storing the sequence of animation frames for subsequent display.
 The system according to claim 19, further including a display unit coupled to the storage unit for displaying the sequence of animation frames.

The system according to claim 19, wherein the driving force F is a function F(ρ,ρ^{*}) where:
ρ=is the current scalar field, and
ρ^{*}=is the next target scalar field in said sequence.

The system according to claim 21, wherein the driving force F(ρ,ρ^{*}) satisfies the equation:
F(ρ,ρ*)=ρ~∇ρ~*ρ~*
where:
ρ=is the current scalar field,
ρ^{*}=is the next target scalar field in said sequence,
{tilde over (ρ)}=a blurred version of the scalar field.

A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for performing computer graphic simulation of an incompressible fluid in motion, the method comprising:
providing to a simulator module input data that includes a scalar field that defines a physical property of the fluid or of matter suspended therein and a sequence of target scalar fields that define a desired temporal evolution of the scalar field;
simulating fluid motion by calculating a velocity vector u of the fluid at a plurality of points in the simulated fluid, at a plurality of time intervals, wherein said calculation is performed by solving an equation:
u_{t}=−u·∇u−∇p+f
where:
p=hydrostatic pressure,
f=combination of forces acting on the fluid and includes a driving force F that propels the fluid in such a manner that the resulting flow carries the scalar field towards the next target scalar field in said sequence;
u_{t}=is the vector of time derivatives of the velocity field u;
using said velocity values at each time interval to advect the scalar field;
sending some or all of the scalar fields to a renderer module for producing a sequence of animation frames each relating to a respective scalar field; and
storing the sequence of animation frames for subsequent display.

A computer program product comprising a computer useable medium having computer readable program code embodied therein for performing computer graphic simulation of an incompressible fluid in motion, the computer program product comprising:
computer readable program code for causing the computer to provide to a simulator module input data that includes a scalar field that defines a physical property of the fluid or of matter suspended therein and a sequence of target scalar fields that define a desired temporal evolution of the scalar field;
computer readable program code for causing the computer to simulate fluid motion by calculating a velocity vector u of the fluid at a plurality of points in the simulated fluid, at a plurality of time intervals, wherein said calculation is performed by solving an equation:
u_{t}=−u·∇u−∇p+f
where:
p=hydrostatic pressure,
f=combination of forces acting on the fluid and includes a driving force F that propels the fluid in such a manner that the resulting flow carries the scalar field towards the next target scalar field in said sequence;
u_{t}=is the vector of time derivatives of the velocity field u;
computer readable program code for causing the computer to use said velocity values at each time interval to advect the scalar field;
computer readable program code for causing the computer to render some or all of the scalar fields so as to produce a sequence of animation frames each relating to a respective scalar field; and
computer readable program code for causing the computer to store the sequence of animation frames for subsequent display.
Owners (US)
Applicants

Yissum Res Dev Co
Explore more patents:
Inventors

Lischinski Daniel
Explore more patents:

Fattal Raanan
Explore more patents:
CPC Classifications

G06T13/60
Explore more patents:

G06T2210/24
Explore more patents:
US Classifications

345/474.000
Explore more patents:
Document Preview
 Publication: Nov 17, 2005

Application:
May 13, 2005
US 12822705 A

Priority:
May 13, 2005
US 12822705 A

Priority:
May 14, 2004
US 57161904 P