Return to main page

Michel Thoby wrote a page in which he compared the Nikkor 10.5mm fisheye to the Sigma 8mm fisheye.
On the page he describes his measurements on the "no parallax point". The point around which you should rotate your camera to prevent parallax shifts between shots.
He determined the distance of the point to the front lens for various angles. Light entering the lens full frontal has a different no-parallax-point than light entering the lens from an angle.
the greater the angle is that a lightbeam has to the optical axis, the more the no-parallax-point shifts forward.

This behaviour is totally different from a normal (rectilinear) lens. With a rectilinear lens, you use the one and only no-parallax point and you are sure that there will not be parallax differences between your shots. With a fisheye you thus have to choose the no-parallax-point that gives the lowest overall parallax error.

I usually shoot 6 images around with a D70 and a Nikkor 10.5mm fisheye. Therefore each image will cover 360/6 = 60 degrees. Half of that is 30 degrees. So it's easy to tricked into thinking: I'll just look up 30 degrees in Michels table and the no-parallax-point should therefore be 16mm behind the front of the lens. But that's not the answer that'll work. This way you'll have no parallax differences at the horizon, but huge differences elsewhere in your panorama. To illustrate that, let's start with an example.

The Nikkor 10.5mm on a D70 (crop factor 1.5) has an angle of view of approximately 87 x 130 degrees. Sometimes b.t.w., "angle of view" is (erroneously) called "field of view".
The 10.5mm is an equidistant fisheye, that means that for every pixel you move away from the center of the image, the same amount of degrees is projected. It is illustrated in the next image:

full frame fisheye image with FoV illustrated

Displayed left is the image as it comes out of the camera. I added concentric rings showing where lightrays entering the lens will end up on the photo. The rays that come straight at the camera along the optical axis will end up in the center of the plus sign. Light entering the lens at a 10 degree angle (see right image) will end up somewhere on the ring marked "10". And so on.

If the above image is warped to equirectangular format, it will look like this:

Now let's add some more images. This is an image showing a 360x180 panorama with two images included, a white one and a green one. The image shows the overlap zone in purple:

(click image to enlarge)

The stitcher will place the seam exactly between the two images, so the left part of the overlap will be taken from the white image and the right part from the green image. The seam will be 30 degrees from the center of the image, because the images are spaced 60 degrees apart. The apple shapes are what you get if a square fisheye image gets remapped to equirectangular projection.

The next image shows the result when I load all 6 images, spaced 60 degrees apart:

(click image to enlarge)

As expected the seams are drawn right down the middle of the overlaps. As illustrated with the arrows the seam is located 30 degrees away from the image center on the horizon, but on the top (and the bottom) of the image it is located at least 75 degrees from the center of the image.

So what angle should I take in Michels graph to determine my no-parallax-point?
I would have to look where parallax would be most annoying. That usually is the place where objects are closest to the lens.
If that would be on the horizon, I would take 0 degrees and thus 18mm.
If that would be on the top part of the image, I would take 75 degrees and thus 8mm.

But in reality a panorama also has a nadir and a zenith image. An example with those two added renders this image:

(click image to enlarge)

I added a half opaque example of the full green image to it, so you can see what part of the green image is used and what part not.
To quantify the light angle at various places in the panorama, I added the concentric rings to each image. That results in the following image:

equirectangular panorama with degree marks
(Click image to enlarge)

What does the image say:
  • Choosing 30 degrees as no-parallax-point would have given a lot of parallax errors throughout the image. Though 30 or 35 would be a good point to pick if all details are on or around the horizon.
  • Choosing 45 degrees would have given a nice overall low amount of parallax errors, expecially on the short end of the zenith image, like above the green and white images.
  • There will be a lot of errors on the long sides of the zenith image, e.g. above the red image. The seam there is almost 60 degrees from the center of the red image and just 35 degrees from the center of the zenith image.

I decided to use 45 degrees as a best overall point.
Looking up 45 degrees in Michels graph tells me I should have my lens stick out 13mm from the rotation pont of my tripod.

To end the story, here is an image showing how PTGui's blender blended the images together. It has become a piece of art :)

(click image to enlarge)