jmoncr20_thesis_v05

advertisement
John Moncrief
Secondary Thesis Abstract
4/16/2012
===== ABSTRACT =====
There are many different ways to approach the creation of fluid simulations for
visual effects, including using existing tools in publicly available 3d software. This thesis
focuses on using one such software, Houdini12, to develop procedural data sharing
between multiple fluid systems in order to create more realistic simulation behavior. This
workflow involves using Houdini’s dynamic operators to pass data from one simulation
system into a custom volumetric field, doing calculations on the data in that field, and
passing the manipulated data into to another existing simulation system.
In the world of visual effects for film and television, fluid simulations are judged
mainly on one thing… how does it look? By using custom fields and modifying the data of
the base simulation systems, some physical accurateness will be lost. Therefore it is not the
focus of this thesis to produce a more mathematically or physically accurate system, but
rather to create a system with a more realistic visual behaviour.
===== INTRODUCTION =====
In order to provide an example of this workflow, I offer a visual component to the
thesis. The scene involves a gasoline truck that explodes and falls into the ocean. Gasoline
from the truck spills out onto the water surface and the shore and causing flames to move
along with the surface of the water. Eventually the water extinguishes the flames and the
gasoline burns away.
This effect requires the use of two fluid systems, one a FLIP fluid simulation for the
ocean, and the other a Pyro 2.0 simulation for the explosion, fire, and smoke.
The passing of data between these systems is used to achieve two effects. One, the
motion of the FLIP fluid simulation should advect the fuel field’s data from the Pyro 2.0
simulation in order for the gasoline fire to float and move along the surface of the water.
Two, custom attributes in the FLIP simulation should cause dissipation of the fuel and
temperature fields of the Pyro2.0 simulation causing extinguishing of the gasoline fire after
an appropriate amount of time.
===== WHY HOUDINI12 SECTION =====
Side Effects Houdini12 was the chosen tool for this project because of its wide range
of procedural tools. The workflow of Houdini12 is broken into specific contexts, each with
its own set of tools called nodes. Each node acts as either a creator or manipulator of the
data in the network. Each node provides the end user a specific set of editable parameters
that have an impact on the final result of the network. The end user, or artist, is not
required to build what is inside each node, but is required to have a strong understanding
of what is happening to the node’s inputs and outputs.
In order to better understand the development of my project a description of the
most used Houdini12 contexts are described below:
The SOP context (Surface Operators): DESCRIPTION OF SOP's CONTEXT
The POP context (Particle Operators): Nodes in the POP context are used to generate
and manipulate particles. Particles are one way to create certain natural phenomena such
as smoke, water, fire and dust. Since particles are considered geometry, using the POP's
context does not require a simulation solver, however particles can be used as an element
of larger systems that do require a solver, such as the FLIP simulation solver discussed
below. This project used POPs for creating the whitewater of the waves and for carrying
and passing certain data to and from voxel fields. Particles are also used as a guide for
creating the surface of the fluid used for rendering.
The DOP context (Dynamic Operators): DESCRIPTION OF DOP's CONTEXT.
DISCUSS TIME-STEPS VS. FRAMES & THE CONCEPT OF SUB-STEPPING HERE AS WELL
===== RESEARCH SECTION =====
In order to better understand the these two simulation systems I will provide a
historic overview of fluid systems for visual effects and a breakdown of Houdini12’s fluid
systems dynamic operators.
----- HISTORIC SUB-SECTION ----HISTORY HISTORY HISTORY HISTORY HISTORY HISTORY HISTORY HISTORY.
----- FLUID SIMULATION TECHNICAL DESCRIPTION SUB-SECTION ----In the real world fluids are incompressible. There is no volume loss in a fluid system
as it moves. Think of a water balloon. If you squeeze one end of it (compressing the volume
of that area) then the balloon expands in another area. The air and water have to go
somewhere, they do not just disappear. This is the fundamental concept behind
incompressible fluids and the mathematical goal of a fluid system. There are many ways to
calculate the behavior of a fluid system. This thesis will focus on the three main systems
used in Houdini12, the SPH particle system, the voxel based system (sometimes also called
a volume or grid based system), and the FLIP based system.
I’ll start with the description of a SPH particle system, then move to a brief
explanation of a voxel based simulation, then cover how FLIP blends these two methods to
achieve a more efficient solution that lends itself to the systems being discussed in this
thesis.
….. SPH EXPLINATION SUB-SUB-SECTION .....
A smoothed-particle hydrodynamic, or SPH particle system starts out with a cluster
of particles that represent the space occupied by a fluid. The more particles in a given
simulation the less space each particle represents, and there for the more detail a
simulation will have. The spacing between the particles is defined by a parameter called
“Particle Separation”. The negative impact of is the more particles you have the more time
it takes to do the mathematical calculations of the simulation and the more downtime you
have in the production pipeline.
SPH fluids are good for slower moving fluids, which may need to react to fast
moving constraints. For example, a fluid being poured into glass of water. Each particle
carries with it many attributes. In order to make this explanation more concise we will
focus on one, the velocity attribute. For a given time-step the velocity information of a
single particle is shared among other particles within a certain distance of that particle. The
SPH solver does calculations to determine the position of the particles in the next timestep. If the particles position would result in a loss of volume (in other words, a
compressed fluid) the SPH solver uses “stiff” forces to push the particles apart. While this
does keep the particles apart in an effort to prevent a loss of volume, in certain
circumstances this method can cause a simulation to become unstable and force the
particles apart too much. The result can cause the fluid to have an exploding effect.
….. VOXEL FLUIDS EXPLINATION SUB-SUB-SECTION…..
----- PYRO EXPLINATION SUB-SECTION ----With Houdini12 SideFX Software made several fundamental changes to the Pyro2.0
system. But the heart of the system is still rooted in a voxel based simulation. The system
offers a two stage simulation approach. The first stage of the simulation is used to
manipulate smoke simulations. These smoke simulations are made visible in the viewport
and in the renderer by the vale of an attribute called density. The higher the value of the
density attribute the more smoke you have in a particular voxel and the more dense the
smoke is in that area.
The next stage of the Pyro2.0 system involves Houdini12's Combustion Model. The
combustion model is a more complicated simulation method that uses additional attributes
like temperature, fuel, and heat to produce flames as well as smoke and soot. MORE HERE
ON THE COMBUSTION MODEL.
----- FLIP EXPLINATION SUB-SECTION ----Fluid implicit particle (or FLIP) simulations use a hybrid solver to determine the
motion of the fluid. FLIP fluid primarily is used for largely unconstrained fluid simulations
and for when you want to inject new particles into a system. For example, simulating a
river. In order to understand how the FLIP fluid simulation will share data with the Pyro2.0
simulation we must first understand the two systems that make up the hybrid solver in
FLIP. The hybrid calculations come from using both a SPH particle simulation and a Voxel
based (also called a grid based) system like the Pyro2.0 system described above.
===== MY APPROACH SECTION=====
Here is how I am going to do it in so many words.
----- ADVECTION OF GASOLINE SUB-SECTION ----The advection of the gasoline from the water is accomplished by passing the velocity
from the FLIP simulation to XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
----- EXTINGUISHING FIRE SUB-SECTION ----The extinguishing of the gasoline is accomplished by XXXXXXXXXXXXXXXX
===== VOLUME FIELD VISUALIZATION SECTION =====
An additional benefit from using this approach is the ability to visualize the transfer
of data with only color. By using color to represent the information in the simulation and
not having to calculate other visual elements an artist is able to get an idea of the behavior
of the simulation before actually having to wait for the computer to do a full set of
calculations. This means that an artist can quickly see if the system is going to work as
expected and make corrections if needed.
===== PRE-PRODUCTION SECTION =====
----- REFERENCE IMAGES & VIDEOS SUB-SECTION -----
----- STORY BOARDS AND ANIMATICS SUB-SECTION --------- TESTING AND R&D ----I first developed smaller scenes with basic geometry and tested the basic transfer of
data between the two systems.
Download