Texturing the scenery was a particularly difficult challange. The ground plane does not occupy much of the final image, but any texture repetition can be very obvious, and as it usually stretches to the horizon, it is not easy to hide these problems. For Afrika Korps, Robix used several techniques to deal with the ground textures. One solution was to paint several high-res tiling textures, and combine them into a large multi-layer shader, where various bitmaps and procedurals with different tiling were used to hide the repetition. It took a lot of time and effort, and it also choked the Maya renderer most of the times, so for scenes with less camera movement, an alternative solution was used. Using camera projection, you can assign a single texture to an object and disable all lighting and shading effects, so it will render very very quickly. To create the projection map itself, you can render the object using shaders and textures like I've mentioned above; or you can simply paint in anything you want, using digital photos and texture maps. For Afrika Korps, both methods were used in many scenes. In fact, sometimes we even used projections for other objects as well if they were not moving relative to the camera, to speed up rendering. For the sky, we relied on photo backgrounds almost exclusively. There's no reason to waste time generating volumetric 3D clouds if the camera never gets close to them, and if you're content with a 2D background plate, then you can also go out and photograph some for yourself. Very few cinematics require such complicated camera moves that could destroy the illusion, and even those cases can usually be solved by stitching several images together and mapping them on a curved surface. Most of the shaders we've built in Maya relied on 'facing ratio' ramps using the samplerInfo shader node. The idea is that the surface attributes depend on the viewing angle, for example a metal plate has a higher amount of shininess when it is paralel to the viewer. Facing ratio maps were used on almost every object's specular level, highlight size, diffuse intensity, and we usually overshot them at the glancing angles. This helped a lot with rim lighting later in the pipeline. For the skin shader, we've used the Surface Lumincance node, clamping the intensity between 0 and 1, to create a gradient between lit and shadowed areas. A lighter and a reddish tinted version of the original color map was then blended using the gradient, to fake the effect of subsurface scattering. The shader itself used two layers, one for the speculars with an increased amount of bump to create the illusion of translucency.
|