Neatly tucked away in the instructions for use on the PT-GUI website there is an answer. The shifted lens's optical center is no longer aligned with the center of the camera's sensor and the software is designed to stitch images made with symmetrically aligned optics. The shifted image looks fine to the eye but the software sees it for what it really is, an asymmetrical image with all kinds of weird uninterpretable distortion. The solution is to go to the advanced lens settings in the program and enter the amount of the shift away from the center, in pixels, so that the stitching program can compensate.
Hi,
Yes, this is one of the many benefits that a dedicated panostitcher like PTGUI has to offer. Shifted lenses, but also decentered (or tilted) ones, need access to an offset parameter that allows to center on the true optical axis before addressing radially symmetrical distortions.
I happen to use a Canon 5D Mark III, which has a sensor with 160 pixels/mm. If the lens was shifted by 5mm, this translates to 800 pixels (5mm x 160 pixels/mm).
Correct, 5760 pixels / 36mm = 160 pixels offset per shifted mm (as is 3824px / 24mm). You can use this as an initial value, and let the optimization routine refine it further later (based on the actual control points).
If you didn't take a note of the amount of shift, or it was not in horizontal or vertical direction but at an angle, you can still try and let PTGUI find a setting automatically, by
only optimizing for the vertical shift, and then only for the horizontal shift. I often get better results even on unshifted (but potentially somewhat decentered) lenses when I first do a regular optimization, then additionally only optimize for shift, and then re-optimize with those shifts locked. This often leads to sub-pixel registration accuracy (assuming the No-Parallax Point was calibrated well).
I get better results by isolating the shift optimization than by combining it with other parameters in a single optimization run, because it adds so many degrees of freedom to the optimization problem, that multiple solutions can be found, but only one is optimal. PTGUI can get confused that way, unless the task is simplified to one parameter. The success is also dependent on the accuracy of the control points, so make sure to avoid moving branches or clouds, but set the control points on really stationary features in the scene. A lens such as the TS-E 24mm II has so little distortion, that an excellent solution can usually be found, even with shift (and/or tilt, which also shifts the entrance pupil a bit).
So my procedure is to optimize with an initial approximated shift offset, then optimize only the shift parameters (one by one), then re-optimize with the new shift values locked.
By watching the progress in the distance deltas of the control points, it is possible to find a better solution, or stick with a previous solution. Make sure to save the settings before experimenting, because sometimes the optimization gets seriously confused with solving for so many degrees of freedom, and then it's faster to reload a saved solution than to start from scratch.
Cheers,
Bart