Skip to content

108 Degree Angle: NIKOFISH.LEN - A 108 Degree Fisheye Lens

Nikofish is a wide-angle system with a field of view greater than 90 degrees. It shows the use of wide-angle ray-aiming mode to automatically locate the position and extent of the pupil in such systems. Lenses that have fields of view of greater than 90 degrees (half-angle) require special attention in setup, since the conventional methods for specifying field of view are awkward to handle for this case. In addition, special care must be taken within the ray trace routines to ensure stability. Finally, care must be taken in evaluating such lenses, since many of the built-in evaluation procedures (e.g. report graphics) implicitly assume a field of view of less than 90 degrees. The nikofish.len file is an example of such a lens. It is based on a Nikon patent, and is implemented here as a 10mm efl lens that covers a field of view of 108 degrees with an aperture of f/4.

NIKFISH1

As you can see from the drawing, the aperture stop of the lens is well back in the lens, on surface 14. Obviously the pupil position is a function of the field angle, moving almost to the first surface at the edge of the field. In order to accommodate this type of system and ensure that the rays pass through the desired positions on the aperture stop, OSLO uses the warm (wide-angle ray-aiming mode) general operating condition.. When warm is on, fractional object coordinates (for infinite conjugate systems) represent angles in degrees, relative to the nominal field angle of the system. For the present system, the field angle is specified as 45 degrees. This means that a fractional object height of 1.0 refers to a point 45 degrees off axis. The edge of the field of view of this system occurs at a fractional object height of 2.4. In addition, when warm is on, fractional pupil coordinates refer to positions in the reference surface, normalized to the reference surface radius (not the entrance beam radius). For the nikofish lens, the reference surface (aperture stop) radius is 5.2 mm, so a fractional aperture coordinate FY = 0.5 refers to a point in the aperture stop 2.6 mm from the optical axis. The figure below shows a zoomed drawing of the lens near the stop surface. You can see that the rays always go through their prescribed points in the aperture stop. In this connection, it should be mentioned that it is not necessary to have warm on to have the chief ray go through the center of the stop: this always happens (unless the ray trace fails for some reason). The warm condition only affects ordinary rays.

NIKFISH2

To evaluate fisheye systems, you can use all the routines that use the current field point, which can be set to a value greater than 1.0 using the sop command. For example, a ray intercept curve at the edge of the field of view can be obtained as follows:

*SET OBJECT POINT

FBY FBX FBZ      
2.400000 -- --      
FYRF FXRF FY      
-- -- -- --    
YC XC YFS XFS OPL REF SPH RAD
18.702850 -- 0.219863 0.062672 182.326549 Infinite

  NIKFISH3

There is some problem in obtaining a graphical field analysis, because all the internal routines extend only to FBY = 1.0. However, the star command *field accommodates two arguments that give the number of field points and the maximum fby, respectively. The command *field 12 2.4produces the following output.

*FIELD ANALYSIS
WAVELENGTH 1

FIELD YC YFS XFS % DIST LAT COLOR
-- -- 0.042414 0.042414 -- --
0.200000 1.606980 0.040257 0.041150 -0.858303 -0.001824
0.400000 3.210651 0.034107 0.037644 -3.444843 -0.003608
0.600000 4.807926 0.024917 0.032730 -7.795877 -0.005325
0.800000 6.396158 0.014212 0.027698 -13.976597 -0.006981
1.000000 7.973349 0.004033 0.024151 -22.088918 -0.008626
1.200000 9.538334 -0.003140 0.023787 -32.283884 -0.010379
1.400000 11.090926 -0.004421 0.028098 -44.780543 -0.012438
1.600000 12.631948 0.003501 0.037920 -59.894417 -0.015109
1.800000 14.163058 0.024490 0.052703 -78.080634 -0.018818
2.000000 15.686059 -0.177583 0.069185 -100.000000 -0.024115
2.200000 17.201146 0.125809 0.078828 -126.621245 -0.031608
2.400000 18.702850 0.219863 0.062672 -159.380288 -0.041751