| Miller - Break From the Crowd |
Miller "Break From the Crowd", up to that point, was the biggest CG job that Method had taken on. Everyone involved on this job really stepped up to the plate. Tasks were broken in to sections that corresponded to parts of the overall pipeline. Method's 3D artist were grouped into teams to handle different sections of the pipeline with. Each team was lead by one of Method's senior 3D artist. James LeBloch, the overall lead of the project, developed a workflow to setup each of the shots for other artists to work on. Chris Smallfield helped organize and refine the task of texturing and modeling Massive agents. Gil Baron, CG Technical Supervisor, worked with Method Engineering to develop a rendering pipeline that could meet the demands of this job.
Creating the Monster
The Monster was made from several different types of layers. At its base was an underlining mesh that the motion capture for its movement was bound to. On top of that was a Maya nCloth layer which provided secondary animations for the Massive agents that would be fixed to it later.
James LeBloch provided the animated monster, complete with the Maya nCloth layer. My task was to develop a procedure for placing agents onto the monster. I wrote a Maya plug-in that used a 3D distribution model to scatter points across an arbitrary mesh. The plug-in subdivided the space containing the monster into voxels and placed a point on the triangle closest to the center of each voxel. Voxels that did not intersect the surface of the monster's mesh were discarded. The output of the plug-in was saved to a file and used across all shots to maintain placement consistency. Additional agents were added to fill in gaps when the monster's mesh deformed beyond the expected amount. Some of the agents were moved around by hand to make the distribution appear more uniform. This first layer consisted of 700 agents. 500 agents were later added as an inner layer to give the monster more density.
Once the agents were placed on the mesh, keeping them bound and oriented correctly was another matter. I developed another Maya plug-in that used the output file from the first plug-in to bind the agents to mesh and orient them correctly. This plug-in made use of some math that involved quaternions and guide vectors to orient the agents. The surface normal at the agent point and a guide vector was used to calculate a rotation matrix. This rotation matrix transformed the agent from rest position into the necessary orietnation. A quaternion was used to convert the matrix into Euler angles. The Euler angles were written into attributes to be used by Maya. From the image above, texture mapped cubes were used to indicate the orientation and approximate position of the agents.
The third and final, Maya plug-in developed queried the second plug-in for the 3D world positions of the agents. The plug-in then wrote this data out to a file that Massive could understand. Phil Hartmann, Massive freelance artist, provided all the necessary technical information to make this happen.
Rendering
Method had done a couple of Massive jobs prior to Miller and used AIR to render the agents. Since AIR had worked out well previously, it would also be the renderer for this job. However, rendering requirements for this job were more demanding than the previous job. Just before rendering on Miller started, Method engineering had upgraded the entire farm to a new hardware platform. The render queue software was updated to take full advantage of this new hardware platform. I rewrote the Linux render client to run quietly as a daemon on the render nodes.
|
|
|
|