The Maxwell camera model does not include any kind of shift-lens (or film offset) functionality. We could fake it by enlarging the resolution "behind the scenes" and doing a region render. However, there are important drawbacks:
- Maxwell still allocates memory for the full-resolution image, even though it only renders a part of it
- the image saved by mxcl (and displayed during the render) will have a black region
The second problem can be alleviated by cropping the image when it's brought into the render view, but it would still require you to save the image manually from the RV. The first problem can become pretty bad if you use a large offset. For example, when using 36mm film and a resolution of 640x480, a vertical offset of 0.7 expands the vertical resolution to 1112 pixels (2.3 times larger). If you are rendering at print resolution you can quickly run out of memory.
I've just done a quick&dirty implementation using this trick and the black bands are not nice to look at. :)
If you want to compute the required resolution and see if it's acceptable for your scenes, here's the formula for vertical offset (the terms are arranged so that it's as intuitive as possible):
Code: Select allresolutionAspect = horizontalResolution / verticalResolution
filmAspect = filmWidth / filmHeight
extraHorizontalResolution = verticalResolution * (2 * abs(verticalOffset) / filmHeight) * (resolutionAspect / filmAspect)
The "abs" operator takes the absolute value of the number (kills the sign). Film size (width and height) is called camera aperture in the Maya UI. This formula assumes that you have set "Fit resolution gate" to "Horizontal", otherwise there are some extra complications.