Case Studies

Poseidon

Poseidon Broadway shot

CIS Hollywood was presented the challenge of adding and enhancing water for numerous shots in the summer blockbuster movie, Poseidon. The simplest shots required only drips of water to be added in a virtual set extension of a practical hallway, while the most complicated shot called for a huge surge of water violently coming down a hallway, lifting objects, and smashing into the camera.

 Broadway film scan and final composite

Broadway film scan and final composite

Work Awarded

The initial work was awarded based on our RealFlow work on Constantine and other tests we did specifically for Poseidon. The Constantine shots included wine being poured from open moving bottles, and also alcohol being shaken in closed bottles. The Poseidon specific tests included water drips and also low-resolution tests of water rushing down a corridor.

Initial RealFlow test for Poseidon

Initial RealFlow test for Poseidon // View video

A large amount of shots we received required a CG hallway extension added to them. In many of them, we also had to add running water down the floor of the hall and drips coming off of the ceiling.

The most difficult shot we received was 5 seconds long and featured a surge of water flowing down the hall towards camera. The violent surge picks up debris and chairs along the way before smashing down onto the camera.


Goals

For the main surge shot, the Broadway shot, our main goal was to achieve a very photorealistic flood. By concentrating on 3 distinct steps - simulation, meshing, and rendering - we were able to refine them until we were satisfied with the look.

In the beginning we knew that the simulation process would be the key to getting the final photoreal look. Without a solid believable simulation, even the best mesh or renders would be worthless. We based our initial tests on the shots we completed for Constantine. We were able to achieve realistic behavior with RealFlow3, but the scale did not compare to what we wanted to do for Poseidon. To help set up our initial simulations for Poseidon, we hired a RealFlow consultant, Mark Stasiuk, from FusionCIS. With his assistance, we were able to calculate the amount of particles and computing power we needed to get a very believable simulation.

Once we started getting a simulation that was going in the right direction, we simultaneously started researching meshing. Initially, we tested the capabilities of RealFlow and were very satisfied, but as our simulations became more complex and as the particle counts grew, we realized that we would need our own meshing solution.

Rendering was done with Pixar's PRMan. Like meshing, as we started to get decent meshes, we started developing and testing our render pipeline. Dan Kaufman developed and supervised the shaders and rendering for all of the water. The water look was achieved through the use of multiple PRMan shaders. Among the various passes were: diffuse, specular, normal, Zdepth, subsurface scattering, reflection, and specular. By having each pass as a separate layer, our compositors had the best control over the final look.


Production Process

Here is the general outline of how we handled an entire shot at our facility.

Generate scene geometry

Once we had the background scans in our system, we determined what geometry we would need to complete the shot. The geometry generated would serve as a reference to tracking, holdouts for any possible extra 3D objects and geometry for the RealFlow simulations. They would also be used to enhance the actual scan itself. Fortunately, production provided us with LIDAR scans of the entire hall set, so our modeler had a great starting point.

Original Broadway film scan

Original Broadway film scan // View video

Broadway LIDAR point data rendered in Maya

Broadway LIDAR point data rendered in Maya // View video

Track the shot camera

In order for us to render the water and other 3D elements we needed a very accurate track of the shot camera. Once we were able to track the camera, the elements could be rendered and then composited together.

Simulate the fluid

Using the geometry we built for the specific shot, we imported that into RealFlow and started the process of setting up the simulation. For example, the main Broadway shot had a 500 foot hall through which the water flowed down. Using Maya, we simplified the hall so that it would be easier to simulate with, and then imported that into RealFlow. After finding appropriate simulation settings, we simulated just the particles for that shot. In addition to the main fluid simulation we also ran additional simulations to enhance the overall look. These included: spray, water drop, and rigid body dynamic simulations.

Early RealFlow Broadway simulation

Early RealFlow Broadway simulation // View video

RealFlow rigid body dynamics test simulation

RealFlow rigid body dynamics test simulation // View video

Mesh particle data

Once the particle data simulation was completed, we were able to run meshing tests on it and generate the actual mesh files. Given our limited time, we opted to use an in-house mesher that generated PRMan mesh files, which we read in at rendertime. By also wedging out mesh parameters and meshes, we were able to get exactly what we wanted.

Minsk Mesher parameter wedge test

Minsk Mesher parameter wedge test // View video

Rendering

The result of the meshing process was one RIB file per mesh. The mesh RIBS were then read in at rendertime using Read-Archiving inside Maya. For each simulation, we had around 6 rendered elements generated from the same mesh RIB file.

First slap composite with flat shaded fluid mesh

First slap composite with flat shaded fluid mesh // View video

Compositing

Putting the shot together was not as simple as A over B. Not only did we have dozens of fluid layers, we also added extra 3d objects, added an extension to the practical hall in the scene, and also used real water in various places in the shot to add to the believability.

Final render of floorwater element simulated in RealFlow

Final render of floorwater element simulated in RealFlow // View video

Ambient occlusion pass for Broadway hall geometry

Ambient occlusion pass for Broadway hall geometry

RealFlow Process

Defining our RealFlow pipeline was the hardest thing to do. We had previously completed some shots for Constantine using RealFlow, but the scale of the simulations and meshing was no where close to the scale we needed for the main Poseidon shot. The Poseidon Broadway shot entailed a giant surge of water violently coming down a hallway, as opposed to the Constantine shots which basically entailed just water pouring out of a bottle, and water being shaken in a bottle. We estimated that to get real life equivalent results, we needed about 60 billion particles. That amount of data was definitely not realistic considering our time and space limitations. We had to work out other ways to get more detail in the simulations.

RealFlow wine pouring from open bottles

RealFlow wine pouring from open bottles // View video

RealFlow alcohol augmenting real fluid pouring out of the mouth

RealFlow alcohol augmenting real fluid pouring out of the mouth // View video

Once we had a model that matched what was in the background scans, we imported a simplified version of it into RealFlow to use in the simulation.

Setting up how the simulation was going to run was important, because certain ways allowed for a faster and more stable simulation. We ended up using a tilted hall along with gravity, and a box object was used to push the fluid flow down the hall. This setup gave us the most control over the simulation.

High resolution RealFlow particle simulation rendered with Maya and PRMan

High resolution RealFlow particle simulation rendered with Maya and PRMan // View video

After we had shown the shot to our clients, they requested for the surge to not flatten out down the hall. They wanted the water to maintain an almost vertical appearance as it flowed down. To address this problem we merely accelerated the pushing box down the hall to not let the fluid have time to settle and shoot too far in front of the box.

Comparison of Box-pushing simulation methods

Comparison of Box-pushing simulation methods // View video

To further understand what was happening and to get realistic behavior, we wedged the majority of the RealFlow parameters in the simulation for the fluid and for the geometry involved. These parameters included density, viscosity, surface tension for the particles, and friction, bounce, stickiness, and roughness for the actual scene geometry. These wedges were run using the same setup we planned on using for the final high resolution simulations, but we used a much lower particle count, so we could get many of these done fast. By wedging all of these parameters we were able to get a great looking simulation without running the entire high resolution simulation. This was valuable, because the high resolution simulation took a tremendous amount of time to finish.

Side by side comparison of different Friction values

Side by side comparison of different Friction values // View video

We were also able to increase the resolution of the mesh by compositing 2 to 3 simulations together during mesh time. Each of these simulations had different unique particle behaviors, but the overall behavior was similar enough to not notice the discrepancies if they were put together. This enabled us to increase the resolution of the mesh without having to increase the actual resolution of our simulations and thereby increasing the time of the simulation. We just ran another simulation at a known runtime for extra detail.


Unique/Different Solutions

There are a few things we did that must be mentioned, because if we had not done them, we would not have achieved the final results.

Our in-house mesher was the first important piece of the final puzzle. Initially, mesh times per frame were just as much as our simulation times and that was unacceptable. Our solution was to have our own Robert Minsk implement a mesher. He loosely based it on the 2005 Siggraph paper, Animating Sand as a Fluid by Yongning Zhu and Robert Bridson. The mesher was a multi-threaded level set mesher that was designed to handle large sets of data very fast. It generated a single surface one slice at a time and only used particles that were absolutely needed. By reducing mesh times from 2-3 hours to 2-3 minutes, we were able to wedge different meshes to achieve yet another level of refinement that was obvious in the final render. This was a 2 step process: the first step being to write out a PRMan rib file for each mesh that corresponded to the particle simulation file. The second step was to include this in the render scene as a readarchive object with appropriate lighting and shaders attached to it.

Test render of a low resolution culled mesh

Test render of a low resolution culled mesh // View video

To augment the main broadway simulation, we used extra non-meshed particle simulations to get the spray effect of the main sim hitting the walls and objects flowing down the hall. These simulations were run as a post process based on the actual particles of the main simulation. The addition of these particle simulations gave us the extra detail we needed to make the shot believable.

Final render of additional crazy-spray particle element

Final render of additional crazy-spray particle element // View video

Finally, the use of real water elements in the final composite gave the shot a much more natural and less CG look


Hardware and Software Information

Our renderfarm included ~50 linux render nodes and ~100 xserves. We simulated on three Linux Networx dual processor AMD Opteron machines with 8GB of RAM and one AMD Opteron machine with four dual core processors and 32GB of RAM.

We also used RealFlow3 and an alpha version of RealFlow4 operating on CentOS 4.2 for Linux. For rendering we used PRMan 12, and for compositing, we used Shake 4.0 operating on dualproc G5s with 4 gigs of RAM.


Results

Basing our development pipeline around commercially available software allowed a relatively small company like CIS Hollywood to generate extremely sophisticated water simulation effects, effects that just a short while ago would never have been achievable.

Final composite including a Before/After step-through of elements

Final composite including a Before/After step-through of elements // View video

Copyright:

The CIS Hollywood Team (http://www.cishollywood.com)

Visual Effects Supervisor: Bryan Hirota
Digital Effects Supervisor: Dan Kaufman
RealFlow Supervisor: Kyle Yamamoto
Research and Development Supervisor: Robert Minsk
Senior Simulation Technical Director: John Cassella
Color and Lighting Supervisor: Diana Miao
Animation Supervisor: Gary Abrahamian
Senior Technical Director: Jason Wardle
Compositing Supervisor: Patrick Kavanaugh
Senior Compositor: Marc Nanjo



 

ケーススタディーをもっと見る

カスタマー・ヒストリーをもっと見る