This is a short walk through of the key steps we went through in order to achieve this shot.
The software choice for modeling and texturing was dependent on what the artists were comfortable and experienced in. We used both Mudbox and ZBrush to work with our shark. We studied plenty of reference photos and created a base model with a floating point displacement map.
We used seven textures for our sharkskin shader. They were created in Mudbox and Photoshop and were partly painted and partly used photos to create them. Most maps where 8K in resolution.
For the shader we used a VRay fast sss as a base shader. We used a blend material using two layers of coating. One broader specular for the skin and one sharp specular for wetness. We used our displacement that we generated from ZBrush and used Mudbox to project photos of the raft floor from set onto the stomach of our shark to create a little bit of skin rash.
We used a witness camera on set to document the action outside of the camera frustum. We used this material in order to matchmove the basic action of the actors that casts shadows onto our digital elements.
For the animation of the shark, we had so few shots in the sequence so we skipped the idea of using any muscle system and went for a more brute force approach. We had a basic rig for the shark, a few blendshapes for key poses and then we used soft bodies for secondary motion in conjunction with non-linear deformers and cluster animation. This was something that became very flexible for us, and we where able to design animations and deformations on a per-shot basis. We used all cheats in the book, like lattices to deform the shark from his own weight against the floor.
To get the heavy feeling and a realistic interaction of our shark, we had to create a digital floor in order to do some additional deformation. This was done in 5 steps. 1) We tracked the floor to get some reference locators into Maya, of the movement from when the actors were running around deforming the live action floor. 2) Using these reference locators, we matchmoved a CG floor to the action of the plate. 3) We made a cloth floor and had our shark interact with the cloth surface to deform it. 4) We made blendshapes to mix our matchmoved floor with our dynamic cloth floor. 5) We camera mapped the plate onto our matchmoved floor and made that into a texture reference to render out a beauty pass of the new floor with additional deformation.
Once we had balanced our shaders, the lighting was quite straight forward. We shot a chromeball from the primary film camera and used that as reference to orient our HDRI map that was shot on a Nikon d700 with a fisheye lens. We used the HDRI on a dome light and added a Key light in Maya to get an extra punch to the specular. We also had a subtle ambient light to lift the darkest areas. We projected the plate on a rough mockup set, in order to get nice reflections of the live action environment onto our shark.
We rendered using VRay. This shot featured subsurface scattering, GI, HDRI dome lighting, motion blur and depth of field. The rendertimes as I recall it, was about 15 minutes / frame for a 2K beauty frame on a 2x Xeon E5645 @ 2.4 GHz (6-core). With all passes including rawGI, rawShadows, mattes, UV's... we were well under an hour per frame.
Plate Cleanup In this shot, we had three cleanup missions to do. The first one was the bits of tape that was placed on the floor as references for different positions of key props and actors. The second one is the knife that was held of one of the actors. That's because the grabbing of the knife takes place in a later shot in the edit. The third one is a clean frame without actors and shadows to run through the 3D pipeline to get the deformation from our digital deformed floor. Roto To get our shark in to the plate, we had to roto the legs in front. For the motionblur and areas out of focus, we created a setup to automatically create and fill the motion blur with image information when it was needed.
3D Comp All tracking of the shots were made on undistorted plates. The CG was then rendered from the tracked “undistorted” camera. To keep the quality of our plates and avoid softness due to unnecessary filtering, we did not do compositing on undistorted plates; instead we distorted the CG before we composited them together. For a nice workflow, we created a gizmo that distorted our CG based on presets of lenses for all our shots. In the gizmo, we picked the lens we wanted and continued the work from there.
We put all the CG elements together and did the final tweaks and integration. We wanted some wetness on the raft floor where the shark was laying. For flexible and fast turnarounds, we made the wetness in Nuke using a UV map from 3D on our digital deforming floor.
There were a lot of compositing tricks involved in making our digital floor. We had one element of the original plate projected onto our digitally deformed floor. We had another render of a clean floor (based on one frame) without shadows and actors. This projection did not cover the entire pan of the shot so we used different elements in different areas of the shot. The original plate were mostly used where the digital deformations where minimal, and we used the clean painted floor in conjunction with our digital shadows in areas of heavy deformation.